aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaibo Huang <hhb@google.com>2019-09-19 12:52:42 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-09-19 12:52:42 -0700
commit4e3a843d62c8a9aa48f1cdf6cd49f7c250a705ff (patch)
tree09aa6333c5f718fb74ec72a0927f4ef0480a4658
parentb3313ef48a1ca7f1e80a0d0bbe0911a7d23bf670 (diff)
parentfcd2d5e6ad7499027b867b833bcab9f92f4e014a (diff)
downloadsyzkaller-4e3a843d62c8a9aa48f1cdf6cd49f7c250a705ff.tar.gz
Upgrade syzkaller to a60cb4cd840ce786236a00480e8bb1025e0c5fef am: 8551f46562
am: fcd2d5e6ad Change-Id: I0ab90b8693ddeef5e663effab34249185a7db5b8
-rw-r--r--.gitignore3
-rw-r--r--.travis.yml15
-rw-r--r--METADATA6
-rw-r--r--Makefile11
-rw-r--r--README.md1
-rw-r--r--dashboard/app/bisect_test.go155
-rw-r--r--dashboard/app/bug.html71
-rw-r--r--dashboard/app/entities.go2
-rw-r--r--dashboard/app/index.yaml11
-rw-r--r--dashboard/app/jobs.go33
-rw-r--r--dashboard/app/jobs_test.go75
-rw-r--r--dashboard/app/mail_bisect_result.txt52
-rw-r--r--dashboard/app/mail_test_result.txt3
-rw-r--r--dashboard/app/main.go111
-rw-r--r--dashboard/app/reporting_email.go4
-rw-r--r--dashboard/app/static/common.js1
-rw-r--r--dashboard/app/static/style.css4
-rw-r--r--dashboard/app/templates.html64
-rwxr-xr-xdashboard/config/generate-config-kmsan-from-kasan.sh31
-rwxr-xr-xdashboard/config/generate-config-usb.sh25
-rw-r--r--dashboard/config/upstream-usb.config28
-rwxr-xr-xdashboard/config/util.sh26
-rw-r--r--dashboard/dashapi/dashapi.go1
-rw-r--r--docs/fuchsia/README.md12
-rw-r--r--docs/linux/external_fuzzing_usb.md260
-rw-r--r--docs/linux/found_bugs_usb.md6
-rw-r--r--docs/linux/setup_linux-host_qemu-vm_arm-kernel.md6
-rw-r--r--docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md6
-rw-r--r--docs/openbsd/found_bugs.md2
-rw-r--r--docs/research.md1
-rw-r--r--docs/syscall_descriptions.md3
-rw-r--r--executor/common.h4
-rw-r--r--executor/common_bsd.h6
-rw-r--r--executor/common_usb.h103
-rw-r--r--executor/defs.h18
-rw-r--r--executor/syscalls.h78
-rwxr-xr-xfuzzit.sh22
-rw-r--r--pkg/build/fuchsia.go15
-rw-r--r--pkg/build/linux.go38
-rw-r--r--pkg/compiler/check.go9
-rw-r--r--pkg/compiler/testdata/errors.txt4
-rw-r--r--pkg/csource/common.go1
-rw-r--r--pkg/csource/generated.go112
-rw-r--r--pkg/csource/options.go4
-rw-r--r--pkg/host/host.go9
-rw-r--r--pkg/host/host_linux.go12
-rw-r--r--pkg/html/generated.go5
-rw-r--r--pkg/html/html.go8
-rw-r--r--pkg/instance/instance.go6
-rw-r--r--pkg/instance/instance_test.go2
-rw-r--r--pkg/ipc/ipc.go6
-rw-r--r--pkg/mgrconfig/load.go20
-rw-r--r--pkg/report/gvisor.go12
-rw-r--r--pkg/report/linux.go20
-rw-r--r--pkg/report/openbsd.go4
-rw-r--r--pkg/report/testdata/gvisor/report/2413
-rw-r--r--pkg/report/testdata/linux/report/2152
-rw-r--r--pkg/report/testdata/linux/report/3512
-rw-r--r--pkg/report/testdata/linux/report/39966
-rw-r--r--pkg/report/testdata/linux/report/40043
-rw-r--r--pkg/report/testdata/linux/report/40199
-rw-r--r--pkg/report/testdata/linux/report/402100
-rw-r--r--pkg/report/testdata/linux/report/40347
-rw-r--r--pkg/report/testdata/linux/report/40455
-rw-r--r--pkg/report/testdata/linux/report/40573
-rw-r--r--pkg/report/testdata/linux/report/40674
-rw-r--r--pkg/report/testdata/linux/report/40790
-rw-r--r--pkg/report/testdata/linux/report/40882
-rw-r--r--pkg/report/testdata/linux/report/40962
-rw-r--r--pkg/report/testdata/linux/report/410155
-rw-r--r--pkg/report/testdata/linux/report/41179
-rw-r--r--pkg/report/testdata/linux/report/412110
-rw-r--r--pkg/report/testdata/linux/report/413113
-rw-r--r--pkg/report/testdata/linux/report/414111
-rw-r--r--pkg/report/testdata/linux/report/41554
-rw-r--r--pkg/report/testdata/openbsd/report/16317
-rw-r--r--prog/analysis.go8
-rw-r--r--prog/any_test.go2
-rw-r--r--prog/decl_test.go2
-rw-r--r--prog/encoding.go2
-rw-r--r--prog/export_test.go11
-rw-r--r--prog/generation.go2
-rw-r--r--prog/hints_test.go9
-rw-r--r--prog/mutation.go225
-rw-r--r--prog/mutation_test.go280
-rw-r--r--prog/prog_test.go4
-rw-r--r--prog/rand.go121
-rw-r--r--prog/resources.go62
-rw-r--r--prog/target.go3
-rw-r--r--prog/types.go7
-rw-r--r--sys/fuchsia/fuchsia_cobalt.syz.txt6
-rw-r--r--sys/fuchsia/fuchsia_net.syz.txt167
-rw-r--r--sys/fuchsia/gen/amd64.go415
-rw-r--r--sys/fuchsia/gen/arm64.go415
-rw-r--r--sys/fuchsia/sockets.txt8
-rw-r--r--sys/fuchsia/sockets_amd64.const3
-rw-r--r--sys/fuchsia/sockets_arm64.const3
-rw-r--r--sys/linux/dev_char_usb.txt11
-rw-r--r--sys/linux/dev_char_usb_386.const4
-rw-r--r--sys/linux/dev_char_usb_amd64.const4
-rw-r--r--sys/linux/dev_char_usb_arm.const4
-rw-r--r--sys/linux/dev_char_usb_arm64.const4
-rw-r--r--sys/linux/dev_char_usb_ppc64le.const4
-rw-r--r--sys/linux/gen/386.go490
-rw-r--r--sys/linux/gen/amd64.go490
-rw-r--r--sys/linux/gen/arm.go490
-rw-r--r--sys/linux/gen/arm64.go490
-rw-r--r--sys/linux/gen/ppc64le.go490
-rw-r--r--sys/linux/init.go6
-rw-r--r--sys/linux/init_vusb.go49
-rw-r--r--sys/linux/init_vusb_ids.go18
-rw-r--r--sys/linux/vusb.txt610
-rw-r--r--sys/linux/vusb_386.const17
-rw-r--r--sys/linux/vusb_amd64.const17
-rw-r--r--sys/linux/vusb_arm.const17
-rw-r--r--sys/linux/vusb_arm64.const17
-rw-r--r--sys/linux/vusb_ppc64le.const17
-rw-r--r--sys/openbsd/dev_speaker.txt20
-rw-r--r--sys/openbsd/dev_speaker_amd64.const6
-rw-r--r--sys/openbsd/gen/amd64.go51
-rw-r--r--sys/openbsd/ktrace.txt11
-rw-r--r--sys/openbsd/ktrace_amd64.const17
-rw-r--r--sys/openbsd/sys.txt2
-rw-r--r--sys/openbsd/sys_amd64.const1
-rw-r--r--sys/targets/targets.go37
-rw-r--r--sys/test/gen/64.go46
-rw-r--r--sys/test/test.txt14
-rw-r--r--sys/test/test_64.const1
-rwxr-xr-xtools/create-openbsd-gce-ci.sh2
-rwxr-xr-xtools/create-openbsd-vmm-worker.sh2
-rw-r--r--tools/syz-mutate/mutate.go27
-rw-r--r--tools/syz-symbolize/symbolize.go12
-rw-r--r--tools/syz-trace2syz/proggen/call_selector.go5
-rw-r--r--tools/syz-usbgen/keyboard.c650
-rw-r--r--vm/qemu/qemu.go1
135 files changed, 6968 insertions, 2235 deletions
diff --git a/.gitignore b/.gitignore
index 018a6d605..34ddd10f6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,6 @@
workdir*
bin/
+
+# jetbrains goland
+.idea
diff --git a/.travis.yml b/.travis.yml
index 7484fb78f..cf4c74738 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,7 @@
language: go
dist: xenial
-
+services:
+ - docker
go:
- "1.11"
- "1.12"
@@ -34,8 +35,16 @@ after_failure:
jobs:
include:
- - stage: fuzzit.dev
+ - stage: fuzzit.dev (regression)
+ if: branch = master AND type IN (pull_request)
+ go: 1.12.x
+ script:
+ - ./fuzzit.sh regression
+
+ - stage: fuzzit.dev (fuzzing)
if: branch = master AND type IN (push)
go: 1.12.x
+ env:
+ secure: "TEXvLRUk/cmNwksHLTihVVyBWoU76EhAXkCCdLbn1FtfqCOzzMnQm02oUYcufLrVWIuVDUEUa9Tq+BrS2LGN2oTJEzk8bdQxeiztiRwbPocRLY3y3BNWWk89Vvu/eC/nPPoeRKZ7k3VZDbAk/+cPyXNMVaxBO7rwMqrne90txgTunX9V7U9Rr7b2phECBEF+riWtO3kWumZZG9qGq6NRmEcsoMOHgF2WGmxeAkAaU8xKdYOYbbUIns3cSf+bGWnFKOxSDkVDOOyKxdAc6OufejbGU4rjspty6ueXaoL69Rq5+7GOUflqLTMO8WUhpc65DPY3+9G2iH1p7U4v10Vk2V6qbQw83DDeucjSH23zIbNkjjYHSV5IMNwAMcEG5fwANfmnmQeVQCJJkwRBZufD1T+CLf9gqVldLG9qUGPI+ySli2J0oVAQ1rvMhKgR44Ipb3FQm0XBYhYXa3i08ojVXEtG8PNGHgrmOJnhUzC/BA+m9QKncxqMuISsBdlRnuU37DD0HeHZ6NTWvGy7gv2mhnCHc7AWuveBsc3XDvSfK8U3tB9LxS2OdRKWQdhnJBKowjAZ55lvTP0AgagQL+mPBQ7qJ2N8OT/oDRtN6tkY+DIEi8JTie0XOitNbY9AaF4hRFcixpesthvTEdOzx//mURXZXiPYQwyrjf9u1dwEpfA="
script:
- - ./fuzzit.sh
+ - ./fuzzit.sh fuzzing
diff --git a/METADATA b/METADATA
index 7aa25e0c7..d5b6d7653 100644
--- a/METADATA
+++ b/METADATA
@@ -5,10 +5,10 @@ third_party {
type: GIT
value: "https://github.com/google/syzkaller"
}
- version: "e6ebef88ac567c3be8461923ea4f0bc9b9d5ad08"
+ version: "a60cb4cd840ce786236a00480e8bb1025e0c5fef"
last_upgrade_date {
year: 2019
- month: 8
- day: 7
+ month: 9
+ day: 6
}
}
diff --git a/Makefile b/Makefile
index 2453a3765..6525745d8 100644
--- a/Makefile
+++ b/Makefile
@@ -44,12 +44,6 @@ export CGO_ENABLED=0
TARGETGOOS := $(TARGETOS)
TARGETGOARCH := $(TARGETVMARCH)
-ifeq ("$(TARGETOS)", "fuchsia")
-# SOURCEDIR should point to fuchsia checkout.
-export FX_SRC_PATH=$(SOURCEDIR)
- GO = "tools/fuchsia/go"
-endif
-
GITREV=$(shell git rev-parse HEAD)
ifeq ("$(shell git diff --shortstat)", "")
REV=$(GITREV)
@@ -81,6 +75,11 @@ ifeq ("$(TARGETOS)", "akaros")
TARGETGOARCH := $(HOSTARCH)
endif
+ifeq ("$(TARGETOS)", "fuchsia")
+ TARGETGOOS := $(HOSTOS)
+ TARGETGOARCH := $(HOSTARCH)
+endif
+
ifeq ("$(TARGETOS)", "trusty")
TARGETGOOS := $(HOSTOS)
TARGETGOARCH := $(HOSTARCH)
diff --git a/README.md b/README.md
index 8eef8b880..d022bf5c7 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
# syzkaller - kernel fuzzer
[![Build Status](https://travis-ci.org/google/syzkaller.svg?branch=master)](https://travis-ci.org/google/syzkaller)
+[![fuzzit](https://app.fuzzit.dev/badge?org_id=syzkaller=master)](https://fuzzit.dev)
[![Go Report Card](https://goreportcard.com/badge/github.com/google/syzkaller)](https://goreportcard.com/report/github.com/google/syzkaller)
[![Coverage Status](https://codecov.io/gh/google/syzkaller/graph/badge.svg)](https://codecov.io/gh/google/syzkaller)
[![GoDoc](https://godoc.org/github.com/google/syzkaller?status.svg)](https://godoc.org/github.com/google/syzkaller)
diff --git a/dashboard/app/bisect_test.go b/dashboard/app/bisect_test.go
index 3650d65ed..7b4f63b6c 100644
--- a/dashboard/app/bisect_test.go
+++ b/dashboard/app/bisect_test.go
@@ -363,8 +363,55 @@ https://goo.gl/tpsmEJ#testing-patches`,
done.Build.ID = jobID
c.expectOK(c.client2.JobDone(done))
- // TODO: Reporting for BisectFix results not implemented
- // c.pollEmailBug()
+ _, extBugID, err = email.RemoveAddrContext(msg4.Sender)
+ c.expectOK(err)
+ _, dbCrash, _ = c.loadBug(extBugID)
+ reproSyzLink = externalLink(c.ctx, textReproSyz, dbCrash.ReproSyz)
+ reproCLink = externalLink(c.ctx, textReproC, dbCrash.ReproC)
+ dbJob, dbBuild, dbJobCrash = c.loadJob(jobID)
+ kernelConfigLink = externalLink(c.ctx, textKernelConfig, dbBuild.KernelConfig)
+ bisectCrashReportLink = externalLink(c.ctx, textCrashReport, dbJob.CrashReport)
+ bisectCrashLogLink = externalLink(c.ctx, textCrashLog, dbJob.CrashLog)
+ bisectLogLink = externalLink(c.ctx, textLog, dbJob.Log)
+ crashLogLink = externalLink(c.ctx, textCrashLog, dbJobCrash.Log)
+
+ {
+ msg := c.pollEmailBug()
+ // Not mailed to commit author/cc because !MailMaintainers.
+ // c.expectEQ(msg.To, []string{"test@syzkaller.com"})
+ c.expectEQ(msg.Subject, crash4.Title)
+ c.expectEQ(len(msg.Attachments), 0)
+ c.expectEQ(msg.Body, fmt.Sprintf(`syzbot suspects this bug was fixed by commit:
+
+commit 46e65cb4a0448942ec316b24d60446bbd5cc7827
+Author: Author Kernelov <author@kernel.org>
+Date: Wed Feb 9 04:05:06 2000 +0000
+
+ kernel: add a fix
+
+bisection log: %[2]v
+start commit: 11111111 kernel_commit_title1
+git tree: repo1 branch1
+final crash: %[3]v
+console output: %[4]v
+kernel config: %[5]v
+dashboard link: https://testapp.appspot.com/bug?extid=%[1]v
+syz repro: %[6]v
+
+If the result looks correct, please mark the bug fixed by replying with:
+
+#syz fix: kernel: add a fix
+
+For information about bisection process see: https://goo.gl/tpsmEJ#bisection
+`, extBugID, bisectLogLink, bisectCrashReportLink, bisectCrashLogLink, kernelConfigLink, reproSyzLink, reproCLink))
+
+ syzRepro := []byte(fmt.Sprintf("%s#%s\n%s", syzReproPrefix, crash4.ReproOpts, crash4.ReproSyz))
+ c.checkURLContents(bisectLogLink, []byte("bisectfix log 4"))
+ c.checkURLContents(bisectCrashReportLink, []byte("bisectfix crash report 4"))
+ c.checkURLContents(bisectCrashLogLink, []byte("bisectfix crash log 4"))
+ c.checkURLContents(kernelConfigLink, []byte("config1"))
+ c.checkURLContents(reproSyzLink, syzRepro)
+ }
// No more bisection jobs.
pollResp = c.client2.pollJobs(build.Manager)
@@ -803,6 +850,8 @@ func TestBugBisectionResults(t *testing.T) {
},
}
c.expectOK(c.client2.JobDone(done))
+ msg := c.client2.pollEmailBug()
+ c.expectTrue(strings.Contains(msg.Body, "syzbot suspects this bug was fixed by commit:"))
// Fetch bug details
var bugs []*Bug
@@ -819,3 +868,105 @@ func TestBugBisectionResults(t *testing.T) {
c.expectTrue(bytes.Contains(content, []byte("Bisection: fixed by")))
c.expectTrue(bytes.Contains(content, []byte("kernel: add a fix")))
}
+
+// Test that bisection status shows up on main page
+func TestBugBisectionStatus(t *testing.T) {
+ c := NewCtx(t)
+ defer c.Close()
+
+ // Upload a crash report
+ build := testBuild(1)
+ c.client2.UploadBuild(build)
+ crash := testCrashWithRepro(build, 1)
+ c.client2.ReportCrash(crash)
+ c.client2.pollEmailBug()
+
+ // Receive the JobBisectCause and send cause information
+ resp := c.client2.pollJobs(build.Manager)
+ c.client2.expectNE(resp.ID, "")
+ c.client2.expectEQ(resp.Type, dashapi.JobBisectCause)
+ jobID := resp.ID
+ done := &dashapi.JobDoneReq{
+ ID: jobID,
+ Build: *build,
+ Log: []byte("bisectfix log 4"),
+ CrashTitle: "bisectfix crash title 4",
+ CrashLog: []byte("bisectfix crash log 4"),
+ CrashReport: []byte("bisectfix crash report 4"),
+ Commits: []dashapi.Commit{
+ {
+ Hash: "36e65cb4a0448942ec316b24d60446bbd5cc7827",
+ Title: "kernel: add a bug",
+ Author: "author@kernel.org",
+ AuthorName: "Author Kernelov",
+ CC: []string{
+ "reviewer1@kernel.org", "\"Reviewer2\" <reviewer2@kernel.org>",
+ // These must be filtered out:
+ "syzbot@testapp.appspotmail.com",
+ "syzbot+1234@testapp.appspotmail.com",
+ "\"syzbot\" <syzbot+1234@testapp.appspotmail.com>",
+ },
+ Date: time.Date(2000, 2, 9, 4, 5, 6, 7, time.UTC),
+ },
+ },
+ }
+ c.expectOK(c.client2.JobDone(done))
+
+ // Fetch bug, namespace details
+ var bugs []*Bug
+ _, err := db.NewQuery("Bug").GetAll(c.ctx, &bugs)
+ c.expectEQ(err, nil)
+ c.expectEQ(len(bugs), 1)
+ url := fmt.Sprintf("/%v", bugs[0].Namespace)
+ content, err := c.httpRequest("GET", url, "", AccessAdmin)
+ c.expectEQ(err, nil)
+ c.expectTrue(bytes.Contains(content, []byte("cause")))
+
+ // Advance time by 30 days and read out any notification emails
+ {
+ c.advanceTime(30 * 24 * time.Hour)
+ msg := c.client2.pollEmailBug()
+ c.expectTrue(strings.Contains(msg.Body, "syzbot has bisected this bug to:"))
+ msg = c.client2.pollEmailBug()
+ c.expectTrue(strings.Contains(msg.Body, "Sending this report upstream."))
+ msg = c.client2.pollEmailBug()
+ c.expectTrue(strings.Contains(msg.Body, "syzbot found the following crash"))
+ }
+
+ // Receive a JobBisectfix and send fix information.
+ resp = c.client2.pollJobs(build.Manager)
+ c.client2.expectNE(resp.ID, "")
+ c.client2.expectEQ(resp.Type, dashapi.JobBisectFix)
+ jobID = resp.ID
+ done = &dashapi.JobDoneReq{
+ ID: jobID,
+ Build: *build,
+ Log: []byte("bisectfix log 4"),
+ CrashTitle: "bisectfix crash title 4",
+ CrashLog: []byte("bisectfix crash log 4"),
+ CrashReport: []byte("bisectfix crash report 4"),
+ Commits: []dashapi.Commit{
+ {
+ Hash: "46e65cb4a0448942ec316b24d60446bbd5cc7827",
+ Title: "kernel: add a fix",
+ Author: "author@kernel.org",
+ AuthorName: "Author Kernelov",
+ CC: []string{
+ "reviewer1@kernel.org", "\"Reviewer2\" <reviewer2@kernel.org>",
+ // These must be filtered out:
+ "syzbot@testapp.appspotmail.com",
+ "syzbot+1234@testapp.appspotmail.com",
+ "\"syzbot\" <syzbot+1234@testapp.appspotmail.com>",
+ },
+ Date: time.Date(2000, 2, 9, 4, 5, 6, 7, time.UTC),
+ },
+ },
+ }
+ c.expectOK(c.client2.JobDone(done))
+ content, err = c.httpRequest("GET", url, "", AccessAdmin)
+ c.expectEQ(err, nil)
+ c.expectTrue(bytes.Contains(content, []byte("cause+fix")))
+
+ msg := c.client2.pollEmailBug()
+ c.expectTrue(strings.Contains(msg.Body, "syzbot suspects this bug was fixed by commit:"))
+}
diff --git a/dashboard/app/bug.html b/dashboard/app/bug.html
index 2efb75a8c..829c0b172 100644
--- a/dashboard/app/bug.html
+++ b/dashboard/app/bug.html
@@ -25,75 +25,8 @@ Page with details about a single bug.
{{end}}
First crash: {{formatLateness $.Now $.Bug.FirstTime}}, last: {{formatLateness $.Now $.Bug.LastTime}}<br>
- {{with $bisect := .BisectCause}}<br>
- {{if $bisect.ErrorLink}}
- <b>Bisection: {{link $bisect.ErrorLink "error"}}
- ({{link $bisect.LogLink "bisect log"}})</b><br>
- {{else if $bisect.Commit}}{{with $com := $bisect.Commit}}
- <b>Bisection: introduced by
- ({{link $bisect.LogLink "bisect log"}}):</b><br>
- <br><span class="mono">
- commit {{$com.Hash}}<br>
- Author: {{$com.Author}}<br>
- Date: {{formatKernelTime $com.Date}}<br>
- <br>
- &nbsp;&nbsp;{{$com.Title}}<br>
- </span><br>
- {{end}}{{else if $bisect.Commits}}{{with $bisect.Commits}}
- <b>Bisection: the first bad commit could be any of
- ({{link $bisect.LogLink "bisect log"}}):</b><br>
- <br><span class="mono">
- {{range $com := $bisect.Commits}}
- &nbsp;&nbsp;{{formatTagHash $com.Hash}} {{$com.Title}}<br>
- {{end}}
- </span><br>
- {{end}}{{else}}
- <b>Bisection: the bug happens on the oldest tested release
- ({{link $bisect.LogLink "bisect log"}})</b><br>
- {{end}}
- Tree: <span title="{{$bisect.Manager}}">{{$bisect.KernelAlias}}</span><br>
- {{if $bisect.CrashLogLink}}
- Crash: {{link $bisect.CrashReportLink $bisect.CrashTitle}} ({{link $bisect.CrashLogLink "log"}})<br>
- {{end}}
- Repro: {{optlink $bisect.Crash.ReproCLink "C"}}
- {{optlink $bisect.Crash.ReproSyzLink "syz"}}
- {{optlink $bisect.Crash.KernelConfigLink ".config"}}<br>
- {{end}}
-
- {{with $bisect := .BisectFix}}<br>
- {{if $bisect.ErrorLink}}
- <b>Bisection: {{link $bisect.ErrorLink "error"}}
- ({{link $bisect.LogLink "bisect log"}})</b><br>
- {{else if $bisect.Commit}}{{with $com := $bisect.Commit}}
- <b>Bisection: fixed by
- ({{link $bisect.LogLink "bisect log"}}):</b><br>
- <br><span class="mono">
- commit {{$com.Hash}}<br>
- Author: {{$com.Author}}<br>
- Date: {{formatKernelTime $com.Date}}<br>
- <br>
- &nbsp;&nbsp;{{$com.Title}}<br>
- </span><br>
- {{end}}{{else if $bisect.Commits}}{{with $bisect.Commits}}
- <b>Bisection: the fix commit could be any of
- ({{link $bisect.LogLink "bisect log"}}):</b><br>
- <br><span class="mono">
- {{range $com := $bisect.Commits}}
- &nbsp;&nbsp;{{formatTagHash $com.Hash}} {{$com.Title}}<br>
- {{end}}
- </span><br>
- {{end}}{{else}}
- <b>Bisection: the bug occurs on the newest tested release
- ({{link $bisect.LogLink "bisect log"}})</b><br>
- {{end}}
- Tree: <span title="{{$bisect.Manager}}">{{$bisect.KernelAlias}}</span><br>
- {{if $bisect.CrashLogLink}}
- Crash: {{link $bisect.CrashReportLink $bisect.CrashTitle}} ({{link $bisect.CrashLogLink "log"}})<br>
- {{end}}
- Repro: {{optlink $bisect.Crash.ReproCLink "C"}}
- {{optlink $bisect.Crash.ReproSyzLink "syz"}}
- {{optlink $bisect.Crash.KernelConfigLink ".config"}}<br>
- {{end}}
+ {{template "bisect_results" .BisectCause}}
+ {{template "bisect_results" .BisectFix}}
{{template "bug_list" .DupOf}}
{{template "bug_list" .Dups}}
diff --git a/dashboard/app/entities.go b/dashboard/app/entities.go
index c6d26c476..0d368a953 100644
--- a/dashboard/app/entities.go
+++ b/dashboard/app/entities.go
@@ -89,7 +89,7 @@ type Bug struct {
Reporting []BugReporting
Commits []string // titles of fixing commmits
CommitInfo []Commit // additional info for commits (for historical reasons parallel array to Commits)
- HappenedOn []string `datastore:",noindex"` // list of managers
+ HappenedOn []string // list of managers
PatchedOn []string `datastore:",noindex"` // list of managers
UNCC []string // don't CC these emails on this bug
}
diff --git a/dashboard/app/index.yaml b/dashboard/app/index.yaml
index 3b38b3fc6..7100bcea9 100644
--- a/dashboard/app/index.yaml
+++ b/dashboard/app/index.yaml
@@ -18,6 +18,17 @@ indexes:
- kind: Bug
properties:
- name: Namespace
+ - name: HappenedOn
+
+- kind: Bug
+ properties:
+ - name: Namespace
+ - name: Status
+ - name: HappenedOn
+
+- kind: Bug
+ properties:
+ - name: Namespace
- name: Title
- name: Seq
direction: desc
diff --git a/dashboard/app/jobs.go b/dashboard/app/jobs.go
index 9f8dab51e..9fadcb68d 100644
--- a/dashboard/app/jobs.go
+++ b/dashboard/app/jobs.go
@@ -507,6 +507,9 @@ func doneJob(c context.Context, req *dashapi.JobDoneReq) error {
} else {
bug.BisectFix = result
}
+ // If the crash still occurs on HEAD, update the bug's LastTime so that it will be
+ // retried after 30 days.
+ crashesOnHead(c, bug, job, req, now)
if _, err := db.Put(c, bugKey, bug); err != nil {
return fmt.Errorf("failed to put bug: %v", err)
}
@@ -536,6 +539,14 @@ func doneJob(c context.Context, req *dashapi.JobDoneReq) error {
return db.RunInTransaction(c, tx, &db.TransactionOptions{XG: true, Attempts: 30})
}
+func crashesOnHead(c context.Context, bug *Bug, job *Job, req *dashapi.JobDoneReq, now time.Time) {
+ if job.Type != JobBisectFix || req.Error != nil || len(req.Commits) != 0 || len(req.CrashLog) == 0 {
+ return
+ }
+ bug.BisectFix = BisectNot
+ bug.LastTime = now
+}
+
func pollCompletedJobs(c context.Context, typ string) ([]*dashapi.BugReport, error) {
var jobs []*Job
keys, err := db.NewQuery("Job").
@@ -551,18 +562,25 @@ func pollCompletedJobs(c context.Context, typ string) ([]*dashapi.BugReport, err
log.Criticalf(c, "no reporting for job %v", extJobID(keys[i]))
continue
}
- // TODO: this is temporary and will be removed once support for sending
- // JobBisectFix result emails is implemented.
- if job.Type == JobBisectFix {
- continue
- }
reporting := config.Namespaces[job.Namespace].ReportingByName(job.Reporting)
if reporting.Config.Type() != typ {
continue
}
+ // TODO: reporting fix bisection is disabled until issue #1371 is resolved.
+ if !appengine.IsDevAppServer() && job.Type == JobBisectFix {
+ continue
+ }
+ // TODO: fix bisection results are only supported for email at the moment.
+ if !appengine.IsDevAppServer() && job.Type == JobBisectFix && typ != emailType {
+ continue
+ }
// TODO: this is temporal for gradual bisection rollout.
- // Notify only about successful bisection for now.
- if !appengine.IsDevAppServer() && job.Type != JobTestPatch && len(job.Commits) != 1 {
+ // Notify only about successful cause bisection for now.
+ if !appengine.IsDevAppServer() && job.Type == JobBisectCause && len(job.Commits) != 1 {
+ continue
+ }
+ // If BisectFix results in a crash on HEAD, no notification is sent out.
+ if job.Type == JobBisectFix && len(job.Commits) != 1 {
continue
}
rep, err := createBugReportForJob(c, job, keys[i], reporting.Config)
@@ -675,6 +693,7 @@ func bisectFromJob(c context.Context, rep *dashapi.BugReport, job *Job) *dashapi
LogLink: externalLink(c, textLog, job.Log),
CrashLogLink: externalLink(c, textCrashLog, job.CrashLog),
CrashReportLink: externalLink(c, textCrashReport, job.CrashReport),
+ Fix: job.Type == JobBisectFix,
}
for _, com := range job.Commits {
bisect.Commits = append(bisect.Commits, &dashapi.Commit{
diff --git a/dashboard/app/jobs_test.go b/dashboard/app/jobs_test.go
index 6a782eac0..d52f93b30 100644
--- a/dashboard/app/jobs_test.go
+++ b/dashboard/app/jobs_test.go
@@ -141,10 +141,11 @@ commit: 11111111 kernel_commit_title1
git tree: repo1 branch1
console output: %[3]v
kernel config: %[2]v
+dashboard link: https://testapp.appspot.com/bug?extid=%[4]v
compiler: compiler1
patch: %[1]v
-`, patchLink, kernelConfigLink, logLink))
+`, patchLink, kernelConfigLink, logLink, extBugID))
c.checkURLContents(patchLink, []byte(patch))
c.checkURLContents(kernelConfigLink, build.KernelConfig)
c.checkURLContents(logLink, jobDoneReq.CrashLog)
@@ -178,10 +179,11 @@ Tested on:
commit: 11111111 kernel_commit_title1
git tree: repo1 branch1
kernel config: %[2]v
+dashboard link: https://testapp.appspot.com/bug?extid=%[3]v
compiler: compiler1
patch: %[1]v
-`, patchLink, kernelConfigLink))
+`, patchLink, kernelConfigLink, extBugID))
c.checkURLContents(patchLink, []byte(patch))
c.checkURLContents(kernelConfigLink, build.KernelConfig)
}
@@ -219,10 +221,11 @@ Tested on:
commit: 11111111 kernel_commit_title1
git tree: repo1 branch1
kernel config: %[4]v
+dashboard link: https://testapp.appspot.com/bug?extid=%[5]v
compiler: compiler1
patch: %[3]v
-`, truncatedError, errorLink, patchLink, kernelConfigLink))
+`, truncatedError, errorLink, patchLink, kernelConfigLink, extBugID))
c.checkURLContents(patchLink, []byte(patch))
c.checkURLContents(errorLink, jobDoneReq.Error)
c.checkURLContents(kernelConfigLink, build.KernelConfig)
@@ -253,6 +256,7 @@ Tested on:
commit: 11111111 kernel_commit_title1
git tree: repo1 branch1
kernel config: %[3]v
+dashboard link: https://testapp.appspot.com/bug?extid=%[1]v
compiler: compiler1
patch: %[2]v
@@ -311,6 +315,7 @@ Tested on:
commit: 5e6a2eea kernel_commit_title2
git tree: git://mygit.com/git.git
kernel config: %[2]v
+dashboard link: https://testapp.appspot.com/bug?extid=%[1]v
compiler: compiler2
Note: testing is done by a robot and is best-effort only.
@@ -400,3 +405,67 @@ func TestBisectFixJob(t *testing.T) {
}
c.client2.expectOK(c.client2.JobDone(done))
}
+
+// Test that JobBisectFix jobs are re-tried if crash occurs on ToT
+func TestBisectFixRetry(t *testing.T) {
+ c := NewCtx(t)
+ defer c.Close()
+
+ // Upload a crash report
+ build := testBuild(1)
+ c.client2.UploadBuild(build)
+ crash := testCrashWithRepro(build, 1)
+ c.client2.ReportCrash(crash)
+ c.client2.pollEmailBug()
+
+ // Receive the JobBisectCause
+ resp := c.client2.pollJobs(build.Manager)
+ c.client2.expectNE(resp.ID, "")
+ c.client2.expectEQ(resp.Type, dashapi.JobBisectCause)
+ done := &dashapi.JobDoneReq{
+ ID: resp.ID,
+ Error: []byte("testBisectFixRetry:JobBisectCause"),
+ }
+ c.client2.expectOK(c.client2.JobDone(done))
+
+ // Advance time by 30 days and read out any notification emails
+ {
+ c.advanceTime(30 * 24 * time.Hour)
+ msg := c.client2.pollEmailBug()
+ c.expectEQ(msg.Subject, "title1")
+ c.expectTrue(strings.Contains(msg.Body, "Sending this report upstream."))
+
+ msg = c.client2.pollEmailBug()
+ c.expectEQ(msg.Subject, "title1")
+ c.expectTrue(strings.Contains(msg.Body, "syzbot found the following crash"))
+ }
+
+ // Ensure that we get a JobBisectFix. We send back a crashlog, no error, no commits
+ resp = c.client2.pollJobs(build.Manager)
+ c.client2.expectNE(resp.ID, "")
+ c.client2.expectEQ(resp.Type, dashapi.JobBisectFix)
+ done = &dashapi.JobDoneReq{
+ Build: dashapi.Build{
+ ID: "build1",
+ },
+ ID: resp.ID,
+ CrashLog: []byte("this is a crashlog"),
+ CrashReport: []byte("this is a crashreport"),
+ }
+ c.client2.expectOK(c.client2.JobDone(done))
+
+ // Advance time by 30 days. No notification emails
+ {
+ c.advanceTime(30 * 24 * time.Hour)
+ }
+
+ // Ensure that we get a JobBisectFix retry
+ resp = c.client2.pollJobs(build.Manager)
+ c.client2.expectNE(resp.ID, "")
+ c.client2.expectEQ(resp.Type, dashapi.JobBisectFix)
+ done = &dashapi.JobDoneReq{
+ ID: resp.ID,
+ Error: []byte("testBisectFixRetry:JobBisectFix"),
+ }
+ c.client2.expectOK(c.client2.JobDone(done))
+}
diff --git a/dashboard/app/mail_bisect_result.txt b/dashboard/app/mail_bisect_result.txt
index 0e5d92722..8c893440f 100644
--- a/dashboard/app/mail_bisect_result.txt
+++ b/dashboard/app/mail_bisect_result.txt
@@ -1,27 +1,33 @@
-{{if .BisectCause.Commit}}syzbot has bisected this bug to:
-
-commit {{.BisectCause.Commit.Hash}}
-Author: {{.BisectCause.Commit.AuthorName}} <{{.BisectCause.Commit.Author}}>
-Date: {{formatKernelTime .BisectCause.Commit.Date}}
+{{with $br := .}}{{with $bisect := selectBisect .}}{{if $bisect.Commit}}{{if $bisect.Fix}}syzbot suspects this bug was fixed by commit:
+{{else}}syzbot has bisected this bug to:
+{{end}}
+commit {{$bisect.Commit.Hash}}
+Author: {{$bisect.Commit.AuthorName}} <{{$bisect.Commit.Author}}>
+Date: {{formatKernelTime $bisect.Commit.Date}}
- {{.BisectCause.Commit.Title}}
-{{else if .BisectCause.Commits}}Bisection is inconclusive: the first bad commit could be any of:
-{{range $com := .BisectCause.Commits}}
+ {{$bisect.Commit.Title}}
+{{else if $bisect.Commits}}Bisection is inconclusive: the {{if $bisect.Fix}}fix{{else}}first bad{{end}} commit could be any of:
+{{range $com := $bisect.Commits}}
{{formatShortHash $com.Hash}} {{$com.Title}}{{end}}
-{{else}}Bisection is inconclusive: the bug happens on the oldest tested release.
-{{end}}
-bisection log: {{.BisectCause.LogLink}}
-start commit: {{formatShortHash .KernelCommit}} {{formatCommitTableTitle .KernelCommitTitle}}
-git tree: {{.KernelRepoAlias}}
-{{if .BisectCause.CrashReportLink}}final crash: {{.BisectCause.CrashReportLink}}
-{{end}}{{if .BisectCause.CrashLogLink}}console output: {{.BisectCause.CrashLogLink}}
-{{end}}{{if .KernelConfigLink}}kernel config: {{.KernelConfigLink}}
-{{end}}dashboard link: {{.Link}}
-{{if .UserSpaceArch}}userspace arch: {{.UserSpaceArch}}
-{{end}}{{if .ReproSyzLink}}syz repro: {{.ReproSyzLink}}
-{{end}}{{if .ReproCLink}}C reproducer: {{.ReproCLink}}
-{{end}}{{if .BisectCause.Commit}}
-Reported-by: {{.CreditEmail}}
-Fixes: {{formatTagHash .BisectCause.Commit.Hash}} ("{{.BisectCause.Commit.Title}}")
+{{else}}Bisection is inconclusive: the bug happens on the {{if $bisect.Fix}}latest{{else}}oldest{{end}} tested release.
{{end}}
+bisection log: {{$bisect.LogLink}}
+start commit: {{formatShortHash $br.KernelCommit}} {{formatCommitTableTitle $br.KernelCommitTitle}}
+git tree: {{$br.KernelRepoAlias}}
+{{if $bisect.CrashReportLink}}final crash: {{$bisect.CrashReportLink}}
+{{end}}{{if $bisect.CrashLogLink}}console output: {{$bisect.CrashLogLink}}
+{{end}}{{if $br.KernelConfigLink}}kernel config: {{$br.KernelConfigLink}}
+{{end}}dashboard link: {{$br.Link}}
+{{if $br.UserSpaceArch}}userspace arch: {{$br.UserSpaceArch}}
+{{end}}{{if $br.ReproSyzLink}}syz repro: {{$br.ReproSyzLink}}
+{{end}}{{if $br.ReproCLink}}C reproducer: {{$br.ReproCLink}}
+{{end}}{{if $bisect.Fix}}
+If the result looks correct, please mark the bug fixed by replying with:
+
+#syz fix: {{$bisect.Commit.Title}}
+{{else}}{{if $bisect.Commit}}
+Reported-by: {{$br.CreditEmail}}
+Fixes: {{formatTagHash $bisect.Commit.Hash}} ("{{$bisect.Commit.Title}}")
+{{end}}{{end}}
For information about bisection process see: https://goo.gl/tpsmEJ#bisection
+{{end}}{{end}} \ No newline at end of file
diff --git a/dashboard/app/mail_test_result.txt b/dashboard/app/mail_test_result.txt
index c58328d89..43f0224b1 100644
--- a/dashboard/app/mail_test_result.txt
+++ b/dashboard/app/mail_test_result.txt
@@ -23,7 +23,8 @@ commit: {{formatShortHash .KernelCommit}} {{formatCommitTableTitle .Kern
git tree: {{.KernelRepoAlias}}
{{if .LogLink}}console output: {{.LogLink}}
{{end}}{{if .KernelConfigLink}}kernel config: {{.KernelConfigLink}}
-{{end}}compiler: {{.CompilerID}}
+{{end}}dashboard link: {{.Link}}
+compiler: {{.CompilerID}}
{{if .UserSpaceArch}}userspace arch: {{.UserSpaceArch}}
{{end}}{{if .PatchLink}}patch: {{.PatchLink}}
{{end}}{{if and (not .CrashTitle) (not .Error)}}
diff --git a/dashboard/app/main.go b/dashboard/app/main.go
index c1e47c6d0..55d077660 100644
--- a/dashboard/app/main.go
+++ b/dashboard/app/main.go
@@ -134,25 +134,26 @@ type uiBugGroup struct {
}
type uiBug struct {
- Namespace string
- Title string
- NumCrashes int64
- NumCrashesBad bool
- BisectCause bool
- FirstTime time.Time
- LastTime time.Time
- ReportedTime time.Time
- ClosedTime time.Time
- ReproLevel dashapi.ReproLevel
- ReportingIndex int
- Status string
- Link string
- ExternalLink string
- CreditEmail string
- Commits []*uiCommit
- PatchedOn []string
- MissingOn []string
- NumManagers int
+ Namespace string
+ Title string
+ NumCrashes int64
+ NumCrashesBad bool
+ BisectCauseDone bool
+ BisectFixDone bool
+ FirstTime time.Time
+ LastTime time.Time
+ ReportedTime time.Time
+ ClosedTime time.Time
+ ReproLevel dashapi.ReproLevel
+ ReportingIndex int
+ Status string
+ Link string
+ ExternalLink string
+ CreditEmail string
+ Commits []*uiCommit
+ PatchedOn []string
+ MissingOn []string
+ NumManagers int
}
type uiCrash struct {
@@ -210,15 +211,20 @@ func handleMain(c context.Context, w http.ResponseWriter, r *http.Request) error
if err != nil {
return err
}
- groups, fixedCount, err := fetchNamespaceBugs(c, accessLevel, hdr.Namespace)
+ manager := r.FormValue("manager")
+ groups, fixedCount, err := fetchNamespaceBugs(c, accessLevel, hdr.Namespace, manager)
if err != nil {
return err
}
+ fixedLink := fmt.Sprintf("/%v/fixed", hdr.Namespace)
+ if manager != "" {
+ fixedLink = fmt.Sprintf("%v?manager=%v", fixedLink, manager)
+ }
data := &uiMainPage{
Header: hdr,
Now: timeNow(c),
FixedCount: fixedCount,
- FixedLink: fmt.Sprintf("/%v/fixed", hdr.Namespace),
+ FixedLink: fixedLink,
Groups: groups,
Managers: managers,
}
@@ -257,7 +263,8 @@ func handleTerminalBugList(c context.Context, w http.ResponseWriter, r *http.Req
return err
}
hdr.Subpage = typ.Subpage
- bugs, err := fetchTerminalBugs(c, accessLevel, hdr.Namespace, typ)
+ manager := r.FormValue("manager")
+ bugs, err := fetchTerminalBugs(c, accessLevel, hdr.Namespace, manager, typ)
if err != nil {
return err
}
@@ -489,12 +496,15 @@ func textFilename(tag string) string {
}
}
-func fetchNamespaceBugs(c context.Context, accessLevel AccessLevel, ns string) ([]*uiBugGroup, int, error) {
+func fetchNamespaceBugs(c context.Context, accessLevel AccessLevel,
+ ns, manager string) ([]*uiBugGroup, int, error) {
var bugs []*Bug
- _, err := db.NewQuery("Bug").
- Filter("Namespace=", ns).
- GetAll(c, &bugs)
- if err != nil {
+ query := db.NewQuery("Bug").
+ Filter("Namespace=", ns)
+ if manager != "" {
+ query = query.Filter("HappenedOn=", manager)
+ }
+ if _, err := query.GetAll(c, &bugs); err != nil {
return nil, 0, err
}
state, err := loadReportingState(c)
@@ -580,13 +590,16 @@ func fetchNamespaceBugs(c context.Context, accessLevel AccessLevel, ns string) (
return uiGroups, fixedCount, nil
}
-func fetchTerminalBugs(c context.Context, accessLevel AccessLevel, ns string, typ *TerminalBug) (*uiBugGroup, error) {
+func fetchTerminalBugs(c context.Context, accessLevel AccessLevel,
+ ns, manager string, typ *TerminalBug) (*uiBugGroup, error) {
var bugs []*Bug
- _, err := db.NewQuery("Bug").
+ query := db.NewQuery("Bug").
Filter("Namespace=", ns).
- Filter("Status=", typ.Status).
- GetAll(c, &bugs)
- if err != nil {
+ Filter("Status=", typ.Status)
+ if manager != "" {
+ query = query.Filter("HappenedOn=", manager)
+ }
+ if _, err := query.GetAll(c, &bugs); err != nil {
return nil, err
}
state, err := loadReportingState(c)
@@ -734,21 +747,22 @@ func createUIBug(c context.Context, bug *Bug, state *ReportingState, managers []
}
id := bug.keyHash()
uiBug := &uiBug{
- Namespace: bug.Namespace,
- Title: bug.displayTitle(),
- BisectCause: bug.BisectCause > BisectPending,
- NumCrashes: bug.NumCrashes,
- FirstTime: bug.FirstTime,
- LastTime: bug.LastTime,
- ReportedTime: reported,
- ClosedTime: bug.Closed,
- ReproLevel: bug.ReproLevel,
- ReportingIndex: reportingIdx,
- Status: status,
- Link: bugLink(id),
- ExternalLink: link,
- CreditEmail: creditEmail,
- NumManagers: len(managers),
+ Namespace: bug.Namespace,
+ Title: bug.displayTitle(),
+ BisectCauseDone: bug.BisectCause > BisectPending,
+ BisectFixDone: bug.BisectFix > BisectPending,
+ NumCrashes: bug.NumCrashes,
+ FirstTime: bug.FirstTime,
+ LastTime: bug.LastTime,
+ ReportedTime: reported,
+ ClosedTime: bug.Closed,
+ ReproLevel: bug.ReproLevel,
+ ReportingIndex: reportingIdx,
+ Status: status,
+ Link: bugLink(id),
+ ExternalLink: link,
+ CreditEmail: creditEmail,
+ NumManagers: len(managers),
}
updateBugBadness(c, uiBug)
if len(bug.Commits) != 0 {
@@ -783,7 +797,8 @@ func createUIBug(c context.Context, bug *Bug, state *ReportingState, managers []
func mergeUIBug(c context.Context, bug *uiBug, dup *Bug) {
bug.NumCrashes += dup.NumCrashes
- bug.BisectCause = bug.BisectCause || dup.BisectCause > BisectPending
+ bug.BisectCauseDone = bug.BisectCauseDone || dup.BisectCause > BisectPending
+ bug.BisectFixDone = bug.BisectFixDone || dup.BisectFix > BisectPending
if bug.LastTime.Before(dup.LastTime) {
bug.LastTime = dup.LastTime
}
diff --git a/dashboard/app/reporting_email.go b/dashboard/app/reporting_email.go
index 59fef0458..3b3df67f6 100644
--- a/dashboard/app/reporting_email.go
+++ b/dashboard/app/reporting_email.go
@@ -269,6 +269,10 @@ func incomingMail(c context.Context, r *http.Request) error {
log.Warningf(c, "failed to parse email: %v", err)
return nil
}
+ // Ignore any incoming emails from syzbot itself.
+ if ownEmail(c) == msg.From {
+ return nil
+ }
log.Infof(c, "received email: subject %q, from %q, cc %q, msg %q, bug %q, cmd %q, link %q",
msg.Subject, msg.From, msg.Cc, msg.MessageID, msg.BugID, msg.Command, msg.Link)
if msg.Command == email.CmdFix && msg.CommandArgs == "exact-commit-title" {
diff --git a/dashboard/app/static/common.js b/dashboard/app/static/common.js
index f501d61da..6d03cf78d 100644
--- a/dashboard/app/static/common.js
+++ b/dashboard/app/static/common.js
@@ -41,7 +41,6 @@ function isSorted(values) {
function textSort(v) { return v.toLowerCase(); }
function numSort(v) { return -parseInt(v); }
function floatSort(v) { return -parseFloat(v); }
-function yesSort(v) { return v == "yes" ? 0 : 1; }
function reproSort(v) { return v == "C" ? 0 : v == "syz" ? 1 : 2; }
function patchedSort(v) { return v == "" ? -1 : parseInt(v); }
diff --git a/dashboard/app/static/style.css b/dashboard/app/static/style.css
index ee5ef5fe1..da32203bc 100644
--- a/dashboard/app/static/style.css
+++ b/dashboard/app/static/style.css
@@ -127,8 +127,8 @@ table td, table th {
}
.list_table .stat {
- width: 50pt;
- max-width: 50pt;
+ width: 55pt;
+ max-width: 55pt;
font-family: monospace;
text-align: right;
}
diff --git a/dashboard/app/templates.html b/dashboard/app/templates.html
index 8c95831c9..03ec25298 100644
--- a/dashboard/app/templates.html
+++ b/dashboard/app/templates.html
@@ -79,7 +79,7 @@ Use of this source code is governed by Apache 2 LICENSE that can be found in the
{{end}}
<th><a onclick="return sortTable(this, 'Title', textSort)" href="#">Title</a></th>
<th><a onclick="return sortTable(this, 'Repro', reproSort)" href="#">Repro</a></th>
- <th><a onclick="return sortTable(this, 'Bisected', yesSort)" href="#">Bisected</a></th>
+ <th><a onclick="return sortTable(this, 'Bisected', textSort)" href="#">Bisected</a></th>
<th><a onclick="return sortTable(this, 'Count', numSort)" href="#">Count</a></th>
<th><a onclick="return sortTable(this, 'Last', timeSort)" href="#">Last</a></th>
<th><a onclick="return sortTable(this, 'Reported', timeSort)" href="#">Reported</a></th>
@@ -101,7 +101,15 @@ Use of this source code is governed by Apache 2 LICENSE that can be found in the
{{if $.ShowNamespace}}<td>{{$b.Namespace}}</td>{{end}}
<td class="title"><a href="{{$b.Link}}">{{$b.Title}}</a></td>
<td class="stat">{{formatReproLevel $b.ReproLevel}}</td>
- <td class="stat">{{if $b.BisectCause}}yes{{end}}</td>
+ <td class="stat">
+ {{if and $b.BisectCauseDone $b.BisectFixDone}}
+ cause+fix
+ {{else if $b.BisectCauseDone}}
+ cause
+ {{else if $b.BisectFixDone}}
+ fix
+ {{end}}
+ </td>
<td class="stat {{if $b.NumCrashesBad}}bad{{end}}">{{$b.NumCrashes}}</td>
<td class="stat">{{formatLateness $.Now $b.LastTime}}</td>
<td class="stat">
@@ -223,3 +231,55 @@ Use of this source code is governed by Apache 2 LICENSE that can be found in the
</span>
{{end}}
{{end}}
+
+{{/* Show bisection results */}}
+{{define "bisect_results"}}
+{{if .}}
+ {{$causeJob := 1}}
+ {{$fixJob := 2}}
+ {{if .ErrorLink}}
+ <b>Bisection: {{link .ErrorLink "error"}}
+ ({{link .LogLink "bisect log"}})</b><br>
+ {{else if .Commit}}
+ {{if eq .Type $causeJob}}
+ <b>Bisection: introduced by</b>
+ {{else if eq .Type $fixJob}}
+ <b>Bisection: fixed by</b>
+ {{end}}
+ <b>({{link .LogLink "bisect log"}}):</b><br>
+ <br><span class="mono">
+ commit {{.Commit.Hash}}<br>
+ Author: {{.Commit.Author}}<br>
+ Date: {{formatKernelTime .Commit.Date}}<br>
+ <br>
+ &nbsp;&nbsp;{{.Commit.Title}}<br>
+ </span><br>
+ {{else if .Commits}}
+ {{if eq .Type $causeJob}}
+ <b>Bisection: the cause commit could be any of</b>
+ {{else if eq .Type $fixJob}}
+ <b>Bisection: the fix commit could be any of</b>
+ {{end}}
+ <b>({{link .LogLink "bisect log"}}):</b><br>
+ <br><span class="mono">
+ {{range $com := .Commits}}
+ &nbsp;&nbsp;{{formatTagHash $com.Hash}} {{$com.Title}}<br>
+ {{end}}
+ </span>
+ {{else}}
+ {{if eq .Type $causeJob}}
+ <b>Bisection: the bug happens on the oldest tested release</b>
+ {{else if eq .Type $fixJob}}
+ <b>Bisection: the bug occurs on the latest tested release</b>
+ {{end}}
+ <br>
+ {{end}}
+ Tree: <span title="{{.Manager}}">{{.KernelAlias}}</span><br>
+ {{if .CrashLogLink}}
+ Crash: {{link .CrashReportLink .CrashTitle}} ({{link .CrashLogLink "log"}})<br>
+ Repro: {{optlink .Crash.ReproCLink "C"}}
+ {{optlink .Crash.ReproSyzLink "syz"}}
+ {{optlink .Crash.KernelConfigLink ".config"}}<br>
+ {{end}}
+{{end}}
+{{end}}
diff --git a/dashboard/config/generate-config-kmsan-from-kasan.sh b/dashboard/config/generate-config-kmsan-from-kasan.sh
index 6e6d2b42e..4bdaf8974 100755
--- a/dashboard/config/generate-config-kmsan-from-kasan.sh
+++ b/dashboard/config/generate-config-kmsan-from-kasan.sh
@@ -1,25 +1,24 @@
#!/bin/bash
# Generate upstream-kmsan.config from upstream-kasan.config.
-# Make sure $CC points to the Clang binary and $SOURCEDIR - to the kernel tree.
-
-THISDIR=`cd $(dirname $0); pwd`
-KASAN_CONFIG=${THISDIR}/upstream-kasan.config
-KMSAN_CONFIG=${THISDIR}/upstream-kmsan.config
-KMSAN_ADD=${THISDIR}/bits-kmsan.config
-. ${THISDIR}/util.sh
+# Make sure $CC points to the Clang binary and $KERNEL_SOURCE - to the kernel tree.
[ -z "${CC}" ] && echo 'Please set $CC to point to the compiler!' && exit
-[ -z "${SOURCEDIR}" ] && echo 'Please set $SOURCEDIR to point to the kernel tree!' && exit
+[ -z "${KERNEL_SOURCE}" ] && echo 'Please set $KERNEL_SOURCE to point to the kernel tree!' && exit
+
+THIS_DIR=`cd $(dirname $0); pwd`
+. ${THIS_DIR}/util.sh
+
+KASAN_CONFIG=${THIS_DIR}/upstream-kasan.config
+KMSAN_CONFIG=${THIS_DIR}/upstream-kmsan.config
+KMSAN_ADD=${THIS_DIR}/bits-kmsan.config
+
+cd ${KERNEL_SOURCE}
-(
-cd $SOURCEDIR
cp ${KASAN_CONFIG} .config
-scripts/kconfig/merge_config.sh .config ${KMSAN_ADD}
-make CC="${CC}" oldconfig < /dev/null
+scripts/kconfig/merge_config.sh -m .config ${KMSAN_ADD}
+make ${MAKE_VARS} olddefconfig
util_add_usb_bits
-util_add_syzbot_extra_bits "${KMSAN_CONFIG}"
+util_add_syzbot_extra_bits
-cat .config >> ${KMSAN_CONFIG}
-cp ${KMSAN_CONFIG} .config
-)
+cp .config ${KMSAN_CONFIG}
diff --git a/dashboard/config/generate-config-usb.sh b/dashboard/config/generate-config-usb.sh
index ffe89c74e..78cf19b07 100755
--- a/dashboard/config/generate-config-usb.sh
+++ b/dashboard/config/generate-config-usb.sh
@@ -2,26 +2,25 @@
set -eux
-THISDIR=`cd $(dirname $0); pwd`
+[ -z "${CC}" ] && echo 'Please set $CC to point to the compiler!' && exit
+[ -z "${KERNEL_SOURCE}" ] && echo 'Please set $KERNEL_SOURCE to point to the kernel tree!' && exit
-SYZBOT_CONFIG=${THISDIR}/bits-syzbot.config
-USB_CONFIG=${THISDIR}/upstream-usb.config
-. ${THISDIR}/util.sh
+THIS_DIR=`cd $(dirname $0); pwd`
+. ${THIS_DIR}/util.sh
-[ -z "${CC}" ] && echo 'Please set $CC to point to the compiler!' && exit
-[ -z "${SOURCEDIR}" ] && echo 'Please set $SOURCEDIR to point to the kernel tree!' && exit
+OUTPUT_CONFIG=${THIS_DIR}/upstream-usb.config
+
+cd ${KERNEL_SOURCE}
-cd ${SOURCEDIR}
-make CC="${CC}" defconfig
-make CC="${CC}" kvmconfig
+make ${MAKE_VARS} defconfig
+make ${MAKE_VARS} kvmconfig
util_add_usb_bits
util_add_syzbot_bits
sed -i "s#=m\$#=y#g" .config
-make CC="${CC}" olddefconfig
+make ${MAKE_VARS} olddefconfig
-util_add_syzbot_extra_bits "${USB_CONFIG}"
+util_add_syzbot_extra_bits
-cat .config >> ${USB_CONFIG}
-cp ${USB_CONFIG} .config
+cp .config ${OUTPUT_CONFIG}
diff --git a/dashboard/config/upstream-usb.config b/dashboard/config/upstream-usb.config
index 0ca7716b4..625e385e7 100644
--- a/dashboard/config/upstream-usb.config
+++ b/dashboard/config/upstream-usb.config
@@ -10,7 +10,7 @@ CONFIG_DEBUG_AID_FOR_SYZBOT=y
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.3.0-rc2 Kernel Configuration
+# Linux/x86 5.3.0-rc7 Kernel Configuration
#
#
@@ -4908,9 +4908,6 @@ CONFIG_USB_DYNAMIC_MINORS=y
CONFIG_USB_LEDS_TRIGGER_USBPORT=y
CONFIG_USB_AUTOSUSPEND_DELAY=2
CONFIG_USB_MON=y
-CONFIG_USB_WUSB=y
-CONFIG_USB_WUSB_CBAF=y
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
#
# USB Host Controller Drivers
@@ -4940,8 +4937,6 @@ CONFIG_USB_SL811_HCD=y
CONFIG_USB_SL811_HCD_ISO=y
CONFIG_USB_SL811_CS=y
CONFIG_USB_R8A66597_HCD=y
-CONFIG_USB_WHCI_HCD=y
-CONFIG_USB_HWA_HCD=y
CONFIG_USB_HCD_BCMA=y
CONFIG_USB_HCD_SSB=y
# CONFIG_USB_HCD_TEST_MODE is not set
@@ -4991,6 +4986,7 @@ CONFIG_USBIP_VHCI_NR_HCS=1
CONFIG_USBIP_HOST=y
CONFIG_USBIP_VUDC=y
# CONFIG_USBIP_DEBUG is not set
+# CONFIG_USB_CDNS3 is not set
CONFIG_USB_MUSB_HDRC=y
# CONFIG_USB_MUSB_HOST is not set
# CONFIG_USB_MUSB_GADGET is not set
@@ -5229,10 +5225,6 @@ CONFIG_USB_ROLE_SWITCH=y
# CONFIG_USB_ROLES_INTEL_XHCI is not set
CONFIG_USB_LED_TRIG=y
CONFIG_USB_ULPI_BUS=y
-CONFIG_UWB=y
-CONFIG_UWB_HWA=y
-CONFIG_UWB_WHCI=y
-CONFIG_UWB_I1480U=y
CONFIG_MMC=y
CONFIG_PWRSEQ_EMMC=y
# CONFIG_PWRSEQ_SD8787 is not set
@@ -5703,6 +5695,15 @@ CONFIG_GIGASET_M105=y
# CONFIG_HYSDN is not set
# end of ISDN CAPI drivers
+CONFIG_USB_WUSB=y
+CONFIG_USB_WUSB_CBAF=y
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+CONFIG_USB_WHCI_HCD=y
+CONFIG_USB_HWA_HCD=y
+CONFIG_UWB=y
+CONFIG_UWB_HWA=y
+CONFIG_UWB_WHCI=y
+CONFIG_UWB_I1480U=y
CONFIG_X86_PLATFORM_DEVICES=y
# CONFIG_ACER_WMI is not set
# CONFIG_ACER_WIRELESS is not set
@@ -5885,13 +5886,6 @@ CONFIG_HYPERV_IOMMU=y
# end of i.MX SoC drivers
#
-# IXP4xx SoC drivers
-#
-# CONFIG_IXP4XX_QMGR is not set
-# CONFIG_IXP4XX_NPE is not set
-# end of IXP4xx SoC drivers
-
-#
# Qualcomm SoC drivers
#
# end of Qualcomm SoC drivers
diff --git a/dashboard/config/util.sh b/dashboard/config/util.sh
index a485c9a0b..a39fe508c 100755
--- a/dashboard/config/util.sh
+++ b/dashboard/config/util.sh
@@ -4,24 +4,24 @@
set -eux
-THISDIR=`cd $(dirname $0); pwd`
-
[ -z "${CC}" ] && echo 'Please set $CC to point to the compiler!' && exit
+THIS_DIR=`cd $(dirname $0); pwd`
+MAKE_VARS="CC=${CC}"
+SYZBOT_BITS=${THIS_DIR}/bits-syzbot.config
+
function util_add_syzbot_bits {
- scripts/kconfig/merge_config.sh .config $SYZBOT_CONFIG
- # Not merged in for some reason.
- scripts/config -e CONFIG_KCOV_ENABLE_COMPARISONS
- make CC="${CC}" olddefconfig
+ scripts/kconfig/merge_config.sh -m .config $SYZBOT_BITS
+ make ${MAKE_VARS} olddefconfig
}
function util_add_usb_bits {
- MERGE_USB_SCRIPT=${THISDIR}/kconfiglib-merge-usb-configs.py
+ MERGE_USB_SCRIPT=${THIS_DIR}/kconfiglib-merge-usb-configs.py
git clone --depth=1 https://github.com/ulfalizer/Kconfiglib.git
wget -qO- https://raw.githubusercontent.com/ulfalizer/Kconfiglib/master/makefile.patch | patch -p1
- for config in ${THISDIR}/distros/*; do
- make CC="${CC}" scriptconfig SCRIPT=${MERGE_USB_SCRIPT} SCRIPT_ARG=${config}
+ for config in ${THIS_DIR}/distros/*; do
+ make ${MAKE_VARS} scriptconfig SCRIPT=${MERGE_USB_SCRIPT} SCRIPT_ARG=${config}
done
git checkout ./scripts/kconfig/Makefile
rm -rf ./Kconfiglib
@@ -43,9 +43,12 @@ function util_add_usb_bits {
scripts/config -e CONFIG_USB_GADGETFS
scripts/config -e CONFIG_USB_DUMMY_HCD
scripts/config -e CONFIG_USB_FUZZER
+
+ make ${MAKE_VARS} olddefconfig
}
function util_add_syzbot_extra_bits {
+ TMP_FILE=$(mktemp /tmp/syzkaller.XXXXXX)
echo "# The following configs are added manually, preserve them.
# CONFIG_DEBUG_MEMORY was once added to mm tree and cause disabling of KASAN,
# which in turn caused storm of assorted crashes after silent memory
@@ -55,5 +58,8 @@ CONFIG_DEBUG_MEMORY=y
# This config can be used to enable any additional temporal debugging
# features in linux-next tree.
CONFIG_DEBUG_AID_FOR_SYZBOT=y
-" > $1
+" > ${TMP_FILE}
+ cat .config >> ${TMP_FILE}
+ mv ${TMP_FILE} .config
+ rm -rf ${TMP_FILE}
}
diff --git a/dashboard/dashapi/dashapi.go b/dashboard/dashapi/dashapi.go
index fffc0b8e1..bb5771bbe 100644
--- a/dashboard/dashapi/dashapi.go
+++ b/dashboard/dashapi/dashapi.go
@@ -332,6 +332,7 @@ type BisectResult struct {
LogLink string
CrashLogLink string
CrashReportLink string
+ Fix bool
}
type BugUpdate struct {
diff --git a/docs/fuchsia/README.md b/docs/fuchsia/README.md
index ec1a08335..472362c0e 100644
--- a/docs/fuchsia/README.md
+++ b/docs/fuchsia/README.md
@@ -48,6 +48,12 @@ $ make TARGETOS=fuchsia TARGETARCH=amd64 \
## Running syz-manager
+Running syz-manager requires you to have built fuchsia previously, and added the ssh keys to the fuchsia.zbi image:
+
+```
+$ ${SOURCEDIR}/out/x64.zircon/tools/zbi -o ${SOURCEDIR}/out/x64/fuchsia-ssh.zbi ${SOURCEDIR}/out/x64/fuchsia.zbi --entry "data/ssh/authorized_keys=${SOURCEDIR}/.ssh/authorized_keys"
+```
+
Run `syz-manager` with a config along the lines of:
```
{
@@ -68,7 +74,7 @@ Run `syz-manager` with a config along the lines of:
"cpu": 4,
"mem": 2048,
"kernel": "/fuchsia/out/x64.zircon/multiboot.bin",
- "initrd": "/fuchsia/out/x64/fuchsia.zbi"
+ "initrd": "/fuchsia/out/x64/fuchsia-ssh.zbi"
}
}
```
@@ -79,14 +85,14 @@ Syscall descriptions live in the `sys/fuchsia` folder. To update a syscall, you
To build fuchsia run:
```shell
-$ fx --dir "out/x64" set core.x64
+$ fx --dir "out/x64" set core.x64 --with-base "//bundles:tools"
$ fx clean-build
```
And
```shell
-$ fx --dir "out/arm64" set core.arm64
+$ fx --dir "out/arm64" set core.arm64 --with-base "//bundles:tools"
$ fx clean-build
```
diff --git a/docs/linux/external_fuzzing_usb.md b/docs/linux/external_fuzzing_usb.md
index 3d3ca0601..f82061691 100644
--- a/docs/linux/external_fuzzing_usb.md
+++ b/docs/linux/external_fuzzing_usb.md
@@ -1,45 +1,263 @@
External USB fuzzing for Linux kernel
=====================================
-# USB fuzzing with syzkaller
+Syzkaller support fuzzing the Linux kernel USB subsystem externally
+(as it would be done by plugging in a physical USB device with e.g. [Facedancer](https://github.com/usb-tools/Facedancer)).
+This allowed to find over [100 bugs](/docs/linux/found_bugs_usb.md) in the Linux kernel USB stack so far.
+This is still in development and things might change.
-This page describes the current state of external USB fuzzing support in syzkaller.
-Note, that it's still in development and things might change.
+USB fuzzing consists of 3 parts:
-This allowed to find over [80 bugs](/docs/linux/found_bugs_usb.md) in the Linux kernel USB stack so far.
+1. Syzkaller changes that are now upstream.
+2. Kernel interface for USB device emulation, which can be found [here](https://github.com/google/kasan/commits/usb-fuzzer).
+3. KCOV changes that allow to collect coverage from background threads and interrupts
+(the former can be found [here](https://github.com/google/kasan/commits/usb-fuzzer), the latter in still in development).
-How to set this up:
+Currently syzkaller defines 5 USB syzcalls (see [this](/sys/linux/vusb.txt) and [this](/executor/common_usb.h)):
+
+1. `syz_usb_connect` - connects a USB device.
+2. `syz_usb_disconnect` - disconnects a USB device.
+3. `syz_usb_control_io` - sends or receives a control message over endpoint 0.
+4. `syz_usb_ep_write` - sends a message to an endpoint.
+4. `syz_usb_ep_read` - receives a message from an endpoint.
+
+More details can be found:
+
+1. In the OffensiveCon 2019 "Coverage-Guided USB Fuzzing with Syzkaller" talk
+([slides](https://docs.google.com/presentation/d/1z-giB9kom17Lk21YEjmceiNUVYeI6yIaG5_gZ3vKC-M/edit?usp=sharing), [video](https://www.youtube.com/watch?v=1MD5JV6LfxA)).
+2. In [this](https://marc.info/?l=linux-usb&m=155551883403285&w=2) email.
+
+A few major things that need to be done:
+
+1. Implement proper support for multiple interfaces per configuration.
+What currently is missing is enabling/disabling USB endpoints depending of which interface is set.
+This is required to properly emulate some USB devices like the CDC NCM class.
+2. Collect coverage from interrupts (this is required to enable better fuzzing of USB drivers after enumeration completes).
+3. Add descriptions for all main USB classes.
+4. Upstream KCOV changes.
+5. Upstream the kernel interface for USB device emulation.
+
+Some ideas for things that can be done:
+
+1. Add a mode for standalone fuzzing of physical USB hosts (by using e.g. Raspberry Pi Zero, see below).
+This includes at least: a. making sure that current USB emulation implementation works properly on different OSes (there are some differences);
+b. using USB requests coming from the host as a signal (like coverage) to enable "signal-driven" fuzzing,
+c. making UDC driver name configurable for syz-execprog and syz-prog2c.
+2. Generate syzkaller programs from usbmon trace that is produced by actual USB devices (this should make the fuzzer to go significantly deeper into the USB drivers code).
+
+Syzkaller descriptions for USB fuzzing can be found [here](/sys/linux/vusb.txt).
+
+
+## Setting up
1. Checkout the `usb-fuzzer` branch from https://github.com/google/kasan
-2. Configure and build the kernel. You need to enable `CONFIG_USB_FUZZER=y`, `CONFIG_USB_DUMMY_HCD=y` and all the USB drivers you're interested in fuzzing:
+2. Configure the kernel (at the very least `CONFIG_USB_FUZZER=y` and `CONFIG_USB_DUMMY_HCD=y` need to be enabled).
+
+ The easiest option is to use the [config](/dashboard/config/upstream-usb.config) from the syzbot USB fuzzing instance.
+
+ Another option is to use the USB config generation [script](/dashboard/config/generate-config-usb.sh).
+ This script allows to extract enabled USB related configs from a set of existing `.config` files.
+ Right now it extracts configs only from [one](/dashboard/config/distros) of the Ubuntu kernel's configs.
+
+ ``` bash
+ cd ./dashboard/config/
+ # Put relevant .configs into ./distros/
+ CC=$COMPILER_BINARY_PATH SOURCEDIR=$KERNEL_SOURCE_PATH ./generate-config-usb.sh
+ ```
- ```
- menu config -> Device Drivers -> USB Support ->
- -> USB Gadget Support (enable) ->
- -> USB Peripheral Controller -> Dummy HCD (enable)
- -> USB Gadget Fuzzer (enable)
- ```
+3. Build the kernel.
-3. Update syzkaller descriptions by extracting USB device info using the instructions below.
+4. Optionally update syzkaller descriptions by extracting USB IDs using the instructions below.
-4. Enable `syz_usb_connect`, `syz_usb_disconnect`, `syz_usb_control_io` and `syz_usb_ep_write` syscalls in the manager config.
+5. Enable `syz_usb_connect`, `syz_usb_disconnect`, `syz_usb_control_io`, `syz_usb_ep_write` and `syz_usb_ep_read` syzcalls in the manager config.
-5. Set `sandbox` to `none` in the manager config.
+6. Set `sandbox` to `none` in the manager config.
-6. Pass `dummy_hcd.num=8` to the kernel command line in the maganer config.
+7. Pass `dummy_hcd.num=8` to the kernel command line in the maganer config.
-7. Run.
+8. Run.
-Syzkaller descriptions for USB fuzzing can be found here: [1](/sys/linux/vusb.txt), [2](/sys/linux/init_vusb.go) and [3](/sys/linux/init_vusb_ids.go).
+## Updating syzkaller USB IDs
-## Updating syzkaller USB descriptions
+Syzkaller uses a list of hardcoded [USB IDs](/sys/linux/init_vusb_ids.go) that are [patched](/sys/linux/init_vusb.go) into the `syz_usb_connect` syzcall by syzkaller runtime.
+One of the ways to make syzkaller target only particular USB drivers is to alter that list.
+The instructions below describe a way to generate syzkaller USB IDs for all USB drivers enabled in your .config.
1. Apply [this](/tools/syz-usbgen/usb_ids.patch) kernel patch.
2. Build and boot the kernel.
-3. Connect some USB device to it (e.g. with `syz-exeprog usb.log`, where `usb.log` is some program that utilizes the `syz_usb_connect` syzcall).
+3. Connect a USB HID device. In case you're using a `CONFIG_USB_FUZZER=y` kernel, use the provided [keyboard emulation program](/tools/syz-usbgen/keyboard.c).
+
+4. Use [syz-usbgen](/tools/syz-usbgen/usbgen.go) script to update [syzkaller descriptions](/sys/linux/init_vusb_ids.go):
+
+ ```
+ ./bin/syz-usbgen KERNEL_LOG ./sys/linux/init_vusb_ids.go
+ ```
+
+
+## Running reproducers with Raspberry Pi Zero W
+
+It's possible to run syzkaller USB reproducers by using a Linux board plugged into a physical USB host.
+These instructions describe how to set this up on a Raspberry Pi Zero W, but any other board that has a working USB UDC driver can be used as well.
+
+1. Download `raspbian-stretch-lite.img` from [here](https://www.raspberrypi.org/downloads/raspbian/).
+
+2. Flash the image into an SD card as described [here](https://www.raspberrypi.org/documentation/installation/installing-images/linux.md).
+
+3. Enable UART as described [here](https://www.raspberrypi.org/documentation/configuration/uart.md).
+
+4. Boot the board and get a shell over UART as described [here](https://learn.adafruit.com/raspberry-pi-zero-creation/give-it-life). You'll need a USB-UART module for that. The default login credentials are `pi` and `raspberry`.
+
+5. Get the board connected to the internet (plug in a USB Ethernet adapter or follow [this](https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md)).
+
+6. Update: `sudo apt-get update && sudo apt-get dist-upgrade && sudo rpi-update && sudo reboot`.
+
+7. Install useful packages: `sudo apt-get install vim git`.
+
+8. Download and install Go:
+
+ ``` bash
+ curl https://dl.google.com/go/go1.10.8.linux-armv6l.tar.gz -o go1.10.8.linux-armv6l.tar.gz
+ tar -xf go1.10.8.linux-armv6l.tar.gz
+ mv go goroot-1.10.8
+ mkdir gopath-1.10.8
+ export GOPATH=~/gopath-1.10.8
+ export GOROOT=~/goroot-1.10.8
+ export PATH=~/goroot-1.10.8/bin:$PATH
+ export PATH=~/gopath-1.10.8/bin:$PATH
+ ```
+
+9. Download syzkaller, apply the patch below and build `syz-executor`:
+
+ ``` c
+ diff --git a/executor/common_usb.h b/executor/common_usb.h
+ index e342d808..278c2f4e 100644
+ --- a/executor/common_usb.h
+ +++ b/executor/common_usb.h
+ @@ -269,9 +269,7 @@ static volatile long syz_usb_connect(volatile long a0, volatile long a1, volatil
+
+ // TODO: consider creating two dummy_udc's per proc to increace the chance of
+ // triggering interaction between multiple USB devices within the same program.
+ - char device[32];
+ - sprintf(&device[0], "dummy_udc.%llu", procid);
+ - rv = usb_fuzzer_init(fd, speed, "dummy_udc", &device[0]);
+ + rv = usb_fuzzer_init(fd, speed, "20980000.usb", "20980000.usb");
+ if (rv < 0) {
+ debug("syz_usb_connect: usb_fuzzer_init failed with %d\n", rv);
+ return rv;
+ diff --git a/executor/executor.cc b/executor/executor.cc
+ index 34949a01..1afcb288 100644
+ --- a/executor/executor.cc
+ +++ b/executor/executor.cc
+ @@ -604,8 +604,8 @@ retry:
+ call_extra_cover = true;
+ }
+ if (strncmp(syscalls[call_num].name, "syz_usb_connect", strlen("syz_usb_connect")) == 0) {
+ - prog_extra_timeout = 2000;
+ - call_extra_timeout = 2000;
+ + prog_extra_timeout = 5000;
+ + call_extra_timeout = 5000;
+ }
+ if (strncmp(syscalls[call_num].name, "syz_usb_control_io", strlen("syz_usb_control_io")) == 0)
+ call_extra_timeout = 300;
+ ```
+
+ ``` bash
+ go get -u -d github.com/google/syzkaller/...
+ cd ~/gopath-1.10.8/src/github.com/google/syzkaller
+ # Put the patch above into ./syzkaller.patch
+ git apply ./syzkaller.patch
+ make executor
+ mkdir ~/syz-bin
+ cp bin/linux_arm/syz-executor ~/syz-bin/
+ ```
+
+10. Build `syz-execprog` on your host machine for arm32 with `make TARGETARCH=arm execprog` and copy to `~/syz-bin` onto the SD card.
+
+11. Make sure that ou can now execute syzkaller programs:
+
+ ``` bash
+ cat socket.log
+ r0 = socket$inet_tcp(0x2, 0x1, 0x0)
+ sudo ./syz-bin/syz-execprog -executor ./syz-bin/syz-executor -threaded=0 -collide=0 -procs=1 -nocgroups -nonetdev -nonetreset -notun -debug socket.log
+ ```
+
+12. Setup the dwc2 USB gadget driver:
+
+ ```
+ echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt
+ echo "dwc2" | sudo tee -a /etc/modules
+ sudo reboot
+ ```
+
+13. Get Linux kernel headers following [this](https://github.com/notro/rpi-source/wiki).
+
+14. Download the fuzzer module:
+
+ ``` bash
+ mkdir module
+ cd module
+ wget https://raw.githubusercontent.com/google/kasan/usb-fuzzer/drivers/usb/gadget/fuzzer/fuzzer.c
+ wget https://raw.githubusercontent.com/google/kasan/usb-fuzzer/include/uapi/linux/usb/fuzzer.h
+ ```
+
+ Apply the following change:
+
+ ``` c
+ diff --git a/fuzzer.c b/fuzzer.c
+ index 308c540..68d43b9 100644
+ --- a/fuzzer.c
+ +++ b/fuzzer.c
+ @@ -17,7 +17,7 @@
+ #include <linux/usb/gadgetfs.h>
+ #include <linux/usb/gadget.h>
+
+ -#include <uapi/linux/usb/fuzzer.h>
+ +#include "fuzzer.h"
+
+ #define DRIVER_DESC "USB fuzzer"
+ #define DRIVER_NAME "usb-fuzzer-gadget"
+ ```
+
+ Add a `Makefile`:
+
+ ``` make
+ obj-m := fuzzer.o
+ KDIR := /lib/modules/$(shell uname -r)/build
+ PWD := $(shell pwd)
+ default:
+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
+ ```
+
+ And build with `make`.
+
+15. Insert the module with `sudo insmod fuzzer.ko`.
+
+16. Build and test the [keyboard emulator program](https://raw.githubusercontent.com/google/syzkaller/up-usb-docs/tools/syz-usbgen/keyboard.c):
+
+ ``` bash
+ # Connect the board to some USB host.
+ wget https://raw.githubusercontent.com/google/syzkaller/up-usb-docs/tools/syz-usbgen/keyboard.c
+ gcc keyboard.c -o keyboard
+ sudo ./keyboard
+ # Make sure you see the letter 'x' being entered on the host.
+ ```
+
+17. You should now be able to execute syzkaller USB programs:
+
+ ``` bash
+ $ cat usb.log
+ r0 = syz_usb_connect(0x0, 0x24, &(0x7f00000001c0)={{0x12, 0x1, 0x0, 0x8e, 0x32, 0xf7, 0x20, 0xaf0, 0xd257, 0x4e87, 0x0, 0x0, 0x0, 0x1, [{{0x9, 0x2, 0x12, 0x1, 0x0, 0x0, 0x0, 0x0, [{{0x9, 0x4, 0xf, 0x0, 0x0, 0xff, 0xa5, 0x2c}}]}}]}}, 0x0)
+ $ sudo ./syz-bin/syz-execprog -executor ./syz-bin/syz-executor -threaded=0 -collide=0 -procs=1 -nocgroups -nonetdev -nonetreset -notun -debug usb.log
+ ```
+
+18. Follow [this](https://www.raspberrypi.org/documentation/configuration/wireless/access-point.md) to setup Wi-Fi hotspot.
+
+19. Follow [this](https://www.raspberrypi.org/documentation/remote-access/ssh/) to enable ssh.
+
+20. Optionally solder [Zero Stem](https://zerostem.io/) onto your Raspberry Pi Zero W.
-4. Use [syz-usbgen](/tools/syz-usbgen/usbgen.go) script to update [syzkaller descriptions](/sys/linux/init_vusb_ids.go).
+21. You can now connect the board to an arbitrary USB port, wait for it to boot, join its Wi-Fi network, ssh onto it, and run arbitrary syzkaller USB programs.
diff --git a/docs/linux/found_bugs_usb.md b/docs/linux/found_bugs_usb.md
index 1c9860e3b..667fef503 100644
--- a/docs/linux/found_bugs_usb.md
+++ b/docs/linux/found_bugs_usb.md
@@ -2,12 +2,14 @@
## Reported by syzbot
-[Reported by the USB fuzzing instance](https://groups.google.com/forum/#!searchin/syzkaller-bugs/%22usb-fuzzer%22%7Csort:date)
+Starting from early 2019, bugs in the USB drivers are being automatically reported by the USB fuzzing instance of syzbot and can be found [here](https://syzkaller.appspot.com/upstream?manager=ci2-upstream-usb). A list of CVEs for some of those can be found here [here](https://www.openwall.com/lists/oss-security/2019/08/20/2).
-[Reported by the KMSAN fuzzing instance](https://groups.google.com/forum/#!searchin/syzkaller-bugs/%22kmsan%22$20%22usb%22%7Csort:date)
+Some of the USB bugs are reported by the KMSAN fuzzing instance and can be either found [here](https://groups.google.com/forum/#!searchin/syzkaller-bugs/%22kmsan%22$20%22usb%22%7Csort:date) or [here](https://syzkaller.appspot.com/upstream?manager=ci-upstream-kmsan-gce) (via a manual search, e.g. for `kernel-usb-infoleak`).
## Manually reported
+These are the bugs that were manually reported before USB fuzzing was integrated into syzbot.
+
### USB drivers
* usb/core: memory corruption due to an out-of-bounds access in usb_destroy_configuration [[fix](https://www.spinics.net/lists/linux-usb/msg163644.html)] [CVE-2017-17558]
diff --git a/docs/linux/setup_linux-host_qemu-vm_arm-kernel.md b/docs/linux/setup_linux-host_qemu-vm_arm-kernel.md
index 0c74c4273..da74b90bd 100644
--- a/docs/linux/setup_linux-host_qemu-vm_arm-kernel.md
+++ b/docs/linux/setup_linux-host_qemu-vm_arm-kernel.md
@@ -91,7 +91,7 @@ Run `make` again.
Run:
```
-qemu-system-arm -m 512 -smp 2 -net nic -net user,host=10.0.2.10,hostfwd=tcp::10022-:22 -display none -serial stdio -machine vexpress-a15 -dtb /linux/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dtb -sd /buildroot/output/images/rootfs.ext2 -snapshot -kernel /linux/arch/arm/boot/zImage -append "earlyprintk=serial console=ttyAMA0 root=/dev/sda root=/dev/mmcblk0"
+qemu-system-arm -m 512 -smp 2 -net nic -net user,host=10.0.2.10,hostfwd=tcp::10022-:22 -display none -serial stdio -machine vexpress-a15 -dtb /linux/arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dtb -sd /buildroot/output/images/rootfs.ext2 -snapshot -kernel /linux/arch/arm/boot/zImage -append "earlyprintk=serial console=ttyAMA0 root=/dev/mmcblk0"
```
This should boot the kernel. Wait for login prompt, then in another console run:
@@ -131,8 +131,8 @@ Create manager config `arm.cfg` similar to the following one (changing paths as
"cmdline": "console=ttyAMA0 root=/dev/mmcblk0",
"kernel": "/linux/arch/arm/boot/zImage",
"image_device": "sd",
- "mem": 512
- "cpu": 2,
+ "mem": 512,
+ "cpu": 2
}
}
```
diff --git a/docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md b/docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md
index e6e473d13..4b2cb8b5e 100644
--- a/docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md
+++ b/docs/linux/setup_ubuntu-host_qemu-vm_x86-64-kernel.md
@@ -25,8 +25,8 @@ git clone https://github.com/torvalds/linux.git $KERNEL
Generate default configs:
``` bash
cd $KERNEL
-make defconfig
-make kvmconfig
+make CC="$GCC/bin/gcc" defconfig
+make CC="$GCC/bin/gcc" kvmconfig
```
Now we need to enable some config options required for syzkaller.
@@ -48,7 +48,7 @@ You might also want to enable some other kernel configs as described [here](kern
Since enabling these options results in more sub options being available, we need to regenerate config. Run this and press enter each time when prompted for some config value to leave it as default:
``` bash
-make oldconfig
+make CC="$GCC/bin/gcc" oldconfig
```
Build the kernel with previously built GCC:
diff --git a/docs/openbsd/found_bugs.md b/docs/openbsd/found_bugs.md
index 2beb7fb32..a5db9a994 100644
--- a/docs/openbsd/found_bugs.md
+++ b/docs/openbsd/found_bugs.md
@@ -6,6 +6,8 @@ mailing list and are listed on the [dashboard](https://syzkaller.appspot.com/ope
Newer bugs comes first.
+- [acct: `vn_close(9)` race](https://marc.info/?l=openbsd-cvs&m=156585417104888&w=2)
+
- [diskmap(4): side-effect in error path](https://marc.info/?l=openbsd-cvs&m=156499481623952&w=2)
- [rtable_walk(9): stack exhausted due to recursion](https://marc.info/?l=openbsd-cvs&m=156113711405665&w=2)
diff --git a/docs/research.md b/docs/research.md
index 851420e75..c348d01d3 100644
--- a/docs/research.md
+++ b/docs/research.md
@@ -1,5 +1,6 @@
# Research work based on syzkaller
+* [Empirical Notes on the Interaction Between Continuous Kernel Fuzzing and Development](http://users.utu.fi/kakrind/publications/19/vulnfuzz_camera.pdf)
* [FastSyzkaller: Improving Fuzz Efficiency for Linux Kernel Fuzzing](https://iopscience.iop.org/article/10.1088/1742-6596/1176/2/022013)
* [Charm: Facilitating Dynamic Analysis of Device Drivers of Mobile Systems](https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-talebi.pdf)
([video](https://www.usenix.org/conference/usenixsecurity18/presentation/talebi),
diff --git a/docs/syscall_descriptions.md b/docs/syscall_descriptions.md
index fd47fdc56..b79e88283 100644
--- a/docs/syscall_descriptions.md
+++ b/docs/syscall_descriptions.md
@@ -6,7 +6,7 @@ excerpt from the description:
```
open(file filename, flags flags[open_flags], mode flags[open_mode]) fd
-read(fd fd, buf buffer[out], count len[buf]) len[buf]
+read(fd fd, buf buffer[out], count len[buf])
close(fd fd)
open_mode = S_IRUSR, S_IWUSR, S_IXUSR, S_IRGRP, S_IWGRP, S_IXGRP, S_IROTH, S_IWOTH, S_IXOTH
```
@@ -24,7 +24,6 @@ and deserialize programs. A program is a sequences of syscalls with concrete val
Here is an example (of a textual representation) of a program:
```
-mmap(&(0x7f0000000000), (0x1000), 0x3, 0x32, -1, 0)
r0 = open(&(0x7f0000000000)="./file0", 0x3, 0x9)
read(r0, &(0x7f0000000000), 42)
close(r0)
diff --git a/executor/common.h b/executor/common.h
index 05c759788..1d0616d70 100644
--- a/executor/common.h
+++ b/executor/common.h
@@ -41,7 +41,7 @@ NORETURN void doexit(int status)
#if SYZ_EXECUTOR || SYZ_PROCS || SYZ_REPEAT && SYZ_ENABLE_CGROUPS || \
SYZ_ENABLE_NETDEV || __NR_syz_mount_image || __NR_syz_read_part_table || \
- __NR_syz_usb_connect || (GOOS_openbsd || GOOS_freebsd) && SYZ_TUN_ENABLE
+ __NR_syz_usb_connect || (GOOS_freebsd || GOOS_openbsd || GOOS_netbsd) && SYZ_TUN_ENABLE
unsigned long long procid;
#endif
@@ -167,6 +167,8 @@ static void use_temporary_dir(void)
{
#if SYZ_SANDBOX_ANDROID_UNTRUSTED_APP
char tmpdir_template[] = "/data/data/syzkaller/syzkaller.XXXXXX";
+#elif GOOS_fuchsia
+ char tmpdir_template[] = "/tmp/syzkaller.XXXXXX";
#else
char tmpdir_template[] = "./syzkaller.XXXXXX";
#endif
diff --git a/executor/common_bsd.h b/executor/common_bsd.h
index e483a41d1..95f08bcc5 100644
--- a/executor/common_bsd.h
+++ b/executor/common_bsd.h
@@ -51,8 +51,14 @@ static int tunfd = -1;
// Rest of the packet (if any) will be silently truncated which is fine.
#define SYZ_TUN_MAX_PACKET_SIZE 1000
+#if GOOS_netbsd
+// Increased number of tap and tun devices if image script is used
+#define MAX_TUN 64
+
+#else
// Maximum number of tun devices in the default install.
#define MAX_TUN 4
+#endif
// All patterns are non-expanding given values < MAX_TUN.
#define TUN_IFACE "tap%d"
diff --git a/executor/common_usb.h b/executor/common_usb.h
index 94d270b4b..6e181836e 100644
--- a/executor/common_usb.h
+++ b/executor/common_usb.h
@@ -7,28 +7,33 @@
#define USB_DEBUG 0
+#define USB_MAX_IFACE_NUM 4
#define USB_MAX_EP_NUM 32
+struct usb_iface_index {
+ struct usb_interface_descriptor* iface;
+ struct usb_endpoint_descriptor* eps[USB_MAX_EP_NUM];
+ unsigned eps_num;
+};
+
struct usb_device_index {
struct usb_device_descriptor* dev;
struct usb_config_descriptor* config;
unsigned config_length;
- struct usb_interface_descriptor* iface;
- struct usb_endpoint_descriptor* eps[USB_MAX_EP_NUM];
- unsigned eps_num;
+ struct usb_iface_index ifaces[USB_MAX_IFACE_NUM];
+ unsigned ifaces_num;
};
static bool parse_usb_descriptor(char* buffer, size_t length, struct usb_device_index* index)
{
- if (length < sizeof(*index->dev) + sizeof(*index->config) + sizeof(*index->iface))
+ if (length < sizeof(*index->dev) + sizeof(*index->config))
return false;
+ memset(index, 0, sizeof(*index));
+
index->dev = (struct usb_device_descriptor*)buffer;
index->config = (struct usb_config_descriptor*)(buffer + sizeof(*index->dev));
index->config_length = length - sizeof(*index->dev);
- index->iface = (struct usb_interface_descriptor*)(buffer + sizeof(*index->dev) + sizeof(*index->config));
-
- index->eps_num = 0;
size_t offset = 0;
while (true) {
@@ -40,12 +45,18 @@ static bool parse_usb_descriptor(char* buffer, size_t length, struct usb_device_
break;
if (offset + desc_length > length)
break;
- if (desc_type == USB_DT_ENDPOINT) {
- index->eps[index->eps_num] = (struct usb_endpoint_descriptor*)(buffer + offset);
- index->eps_num++;
+ if (desc_type == USB_DT_INTERFACE && index->ifaces_num < USB_MAX_IFACE_NUM) {
+ struct usb_interface_descriptor* iface = (struct usb_interface_descriptor*)(buffer + offset);
+ debug("parse_usb_descriptor: found interface #%u (%d, %d) at %p\n",
+ index->ifaces_num, iface->bInterfaceNumber, iface->bAlternateSetting, iface);
+ index->ifaces[index->ifaces_num++].iface = iface;
+ }
+ if (desc_type == USB_DT_ENDPOINT && index->ifaces_num > 0) {
+ struct usb_iface_index* iface = &index->ifaces[index->ifaces_num - 1];
+ debug("parse_usb_descriptor: found endpoint #%u at %p\n", iface->eps_num, buffer + offset);
+ if (iface->eps_num < USB_MAX_EP_NUM)
+ iface->eps[iface->eps_num++] = (struct usb_endpoint_descriptor*)(buffer + offset);
}
- if (index->eps_num == USB_MAX_EP_NUM)
- break;
offset += desc_length;
}
@@ -177,7 +188,15 @@ struct vusb_connect_descriptors {
struct vusb_connect_string_descriptor strs[0];
} __attribute__((packed));
-static const char* default_string = "syzkaller";
+static const char default_string[] = {
+ 8, USB_DT_STRING,
+ 's', 0, 'y', 0, 'z', 0 // UTF16-encoded "syz"
+};
+
+static const char default_lang_id[] = {
+ 4, USB_DT_STRING,
+ 0x09, 0x04 // English (United States)
+};
static bool lookup_connect_response(struct vusb_connect_descriptors* descs, struct usb_device_index* index,
struct usb_ctrlrequest* ctrl, char** response_data, uint32* response_length)
@@ -199,14 +218,18 @@ static bool lookup_connect_response(struct vusb_connect_descriptors* descs, stru
return true;
case USB_DT_STRING:
str_idx = (uint8)ctrl->wValue;
- if (str_idx >= descs->strs_len) {
- // Use the default string if we ran out.
- *response_data = (char*)default_string;
- *response_length = strlen(default_string);
- } else {
+ if (descs && str_idx < descs->strs_len) {
*response_data = descs->strs[str_idx].str;
*response_length = descs->strs[str_idx].len;
+ return true;
+ }
+ if (str_idx == 0) {
+ *response_data = (char*)&default_lang_id[0];
+ *response_length = default_lang_id[0];
+ return true;
}
+ *response_data = (char*)&default_string[0];
+ *response_length = default_string[0];
return true;
case USB_DT_BOS:
*response_data = descs->bos;
@@ -217,17 +240,17 @@ static bool lookup_connect_response(struct vusb_connect_descriptors* descs, stru
*response_length = descs->qual_len;
return true;
default:
- fail("syz_usb_connect: no response");
+ fail("lookup_connect_response: no response");
return false;
}
break;
default:
- fail("syz_usb_connect: no response");
+ fail("lookup_connect_response: no response");
return false;
}
break;
default:
- fail("syz_usb_connect: no response");
+ fail("lookup_connect_response: no response");
return false;
}
@@ -258,7 +281,7 @@ static volatile long syz_usb_connect(volatile long a0, volatile long a1, volatil
debug("syz_usb_connect: parse_usb_descriptor failed with %d\n", rv);
return rv;
}
- debug("syz_usb_connect: parsed usb descriptor, %d endpoints found\n", index.eps_num);
+ debug("syz_usb_connect: parsed usb descriptor\n");
int fd = usb_fuzzer_open();
if (fd < 0) {
@@ -298,7 +321,7 @@ static volatile long syz_usb_connect(volatile long a0, volatile long a1, volatil
if (event.inner.type != USB_FUZZER_EVENT_CONTROL)
continue;
- debug("syz_usb_connect: bRequestType: 0x%x (%s), bRequest: 0x%x, wValue: 0x%x, wIndex: 0x%x, wLength: %d\n",
+ debug("syz_usb_connect: bReqType: 0x%x (%s), bReq: 0x%x, wVal: 0x%x, wIdx: 0x%x, wLen: %d\n",
event.ctrl.bRequestType, (event.ctrl.bRequestType & USB_DIR_IN) ? "IN" : "OUT",
event.ctrl.bRequest, event.ctrl.wValue, event.ctrl.wIndex, event.ctrl.wLength);
@@ -333,10 +356,10 @@ static volatile long syz_usb_connect(volatile long a0, volatile long a1, volatil
return rv;
}
unsigned ep;
- for (ep = 0; ep < index.eps_num; ep++) {
- rv = usb_fuzzer_ep_enable(fd, index.eps[ep]);
+ for (ep = 0; ep < index.ifaces[0].eps_num; ep++) {
+ rv = usb_fuzzer_ep_enable(fd, index.ifaces[0].eps[ep]);
if (rv < 0) {
- debug("syz_usb_connect: usb_fuzzer_ep_enable failed with %d\n", rv);
+ debug("syz_usb_connect: usb_fuzzer_ep_enable(%d) failed with %d\n", ep, rv);
} else {
debug("syz_usb_connect: endpoint %d enabled\n", ep);
}
@@ -356,11 +379,14 @@ static volatile long syz_usb_connect(volatile long a0, volatile long a1, volatil
else
memset(&response.data[0], 0, response_length);
- debug("syz_usb_connect: reply length = %d\n", response.inner.length);
- if (event.ctrl.bRequestType & USB_DIR_IN)
+ if (event.ctrl.bRequestType & USB_DIR_IN) {
+ debug("syz_usb_connect: writing %d bytes\n", response.inner.length);
rv = usb_fuzzer_ep0_write(fd, (struct usb_fuzzer_ep_io*)&response);
- else
+ } else {
rv = usb_fuzzer_ep0_read(fd, (struct usb_fuzzer_ep_io*)&response);
+ debug("syz_usb_connect: read %d bytes\n", response.inner.length);
+ debug_dump_data(&event.data[0], response.inner.length);
+ }
if (rv < 0) {
debug("syz_usb_connect: usb_fuzzer_ep0_read/write failed with %d\n", rv);
return rv;
@@ -404,8 +430,13 @@ struct vusb_responses {
static bool lookup_control_response(struct vusb_descriptors* descs, struct vusb_responses* resps,
struct usb_ctrlrequest* ctrl, char** response_data, uint32* response_length)
{
- int descs_num = (descs->len - offsetof(struct vusb_descriptors, descs)) / sizeof(descs->descs[0]);
- int resps_num = (resps->len - offsetof(struct vusb_responses, resps)) / sizeof(resps->resps[0]);
+ int descs_num = 0;
+ int resps_num = 0;
+
+ if (descs)
+ descs_num = (descs->len - offsetof(struct vusb_descriptors, descs)) / sizeof(descs->descs[0]);
+ if (resps)
+ resps_num = (resps->len - offsetof(struct vusb_responses, resps)) / sizeof(resps->resps[0]);
uint8 req = ctrl->bRequest;
uint8 req_type = ctrl->bRequestType & USB_TYPE_MASK;
@@ -428,7 +459,7 @@ static bool lookup_control_response(struct vusb_descriptors* descs, struct vusb_
}
}
- if (descs->generic) {
+ if (descs && descs->generic) {
*response_data = &descs->generic->data[0];
*response_length = descs->generic->len;
return true;
@@ -450,7 +481,7 @@ static bool lookup_control_response(struct vusb_descriptors* descs, struct vusb_
}
}
- if (resps->generic) {
+ if (resps && resps->generic) {
*response_data = &resps->generic->data[0];
*response_length = resps->generic->len;
return true;
@@ -517,7 +548,7 @@ static volatile long syz_usb_control_io(volatile long a0, volatile long a1, vola
return -1;
}
- debug("syz_usb_control_io: bRequestType: 0x%x (%s), bRequest: 0x%x, wValue: 0x%x, wIndex: 0x%x, wLength: %d\n",
+ debug("syz_usb_control_io: bReqType: 0x%x (%s), bReq: 0x%x, wVal: 0x%x, wIdx: 0x%x, wLen: %d\n",
event.ctrl.bRequestType, (event.ctrl.bRequestType & USB_DIR_IN) ? "IN" : "OUT",
event.ctrl.bRequest, event.ctrl.wValue, event.ctrl.wIndex, event.ctrl.wLength);
@@ -552,12 +583,12 @@ static volatile long syz_usb_control_io(volatile long a0, volatile long a1, vola
memset(&response.data[0], 0, response_length);
if (event.ctrl.bRequestType & USB_DIR_IN) {
- debug("syz_usb_control_io: IN, length = %d\n", response.inner.length);
+ debug("syz_usb_control_io: writing %d bytes\n", response.inner.length);
debug_dump_data(&response.data[0], response.inner.length);
rv = usb_fuzzer_ep0_write(fd, (struct usb_fuzzer_ep_io*)&response);
} else {
rv = usb_fuzzer_ep0_read(fd, (struct usb_fuzzer_ep_io*)&response);
- debug("syz_usb_control_io: OUT, length = %d\n", response.inner.length);
+ debug("syz_usb_control_io: read %d bytes\n", response.inner.length);
debug_dump_data(&event.data[0], response.inner.length);
}
if (rv < 0) {
diff --git a/executor/defs.h b/executor/defs.h
index 9cedad6cb..47c9d02ac 100644
--- a/executor/defs.h
+++ b/executor/defs.h
@@ -45,7 +45,7 @@
#if GOARCH_amd64
#define GOARCH "amd64"
-#define SYZ_REVISION "0831ecb34bc4bfd3c444366782fdbd3fafe56026"
+#define SYZ_REVISION "f0ef39210d9bc1961aa7d4b3cbb065e1e1e3824b"
#define SYZ_EXECUTOR_USES_FORK_SERVER 0
#define SYZ_EXECUTOR_USES_SHMEM 0
#define SYZ_PAGE_SIZE 4096
@@ -55,7 +55,7 @@
#if GOARCH_arm64
#define GOARCH "arm64"
-#define SYZ_REVISION "b643855d1cb7438abcacb87d29a4dfdd49961397"
+#define SYZ_REVISION "6a8f950f7eee2c03aa38625f64563d19c3548436"
#define SYZ_EXECUTOR_USES_FORK_SERVER 0
#define SYZ_EXECUTOR_USES_SHMEM 0
#define SYZ_PAGE_SIZE 4096
@@ -70,7 +70,7 @@
#if GOARCH_386
#define GOARCH "386"
-#define SYZ_REVISION "eb22b8a389910e3ec878475738f280bd61b00a09"
+#define SYZ_REVISION "6c600dc9e424904f3bf19b9e8ade5a7d397827a9"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -80,7 +80,7 @@
#if GOARCH_amd64
#define GOARCH "amd64"
-#define SYZ_REVISION "b025d70b7713cc48e9ab783fc35e2410b69a5736"
+#define SYZ_REVISION "e8d337b13b9ae8f911b772c9be47236bc8446da4"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -90,7 +90,7 @@
#if GOARCH_arm
#define GOARCH "arm"
-#define SYZ_REVISION "fdb9cb5b71481f79ff86d824721def50b72fafa5"
+#define SYZ_REVISION "c0010b3d05cb5d0ca1af17dacf9349c9cdf38c9e"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -100,7 +100,7 @@
#if GOARCH_arm64
#define GOARCH "arm64"
-#define SYZ_REVISION "26a51558327902a8e8951bd6afdcdae046006802"
+#define SYZ_REVISION "ace614dc3bdc1ab3e0dfe5514e2718cdd818e071"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -110,7 +110,7 @@
#if GOARCH_ppc64le
#define GOARCH "ppc64le"
-#define SYZ_REVISION "d118414cc10f2c07b6a9e1fae0e14db998375343"
+#define SYZ_REVISION "a3c972567317d3e84a2e833c05a73c8218815ee9"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -140,7 +140,7 @@
#if GOARCH_amd64
#define GOARCH "amd64"
-#define SYZ_REVISION "33de16487cc0a0d25eaa32ea4166bbbc75d2994e"
+#define SYZ_REVISION "eee7ba72a578dfec4292538dd7a1fbe4e927d64f"
#define SYZ_EXECUTOR_USES_FORK_SERVER 1
#define SYZ_EXECUTOR_USES_SHMEM 1
#define SYZ_PAGE_SIZE 4096
@@ -175,7 +175,7 @@
#if GOARCH_64
#define GOARCH "64"
-#define SYZ_REVISION "8c0a50a6c63e5bd297e9f6421864685e1fd7dc96"
+#define SYZ_REVISION "71d8f9a8f2ed06129920bb9f60aef16fb9ca749b"
#define SYZ_EXECUTOR_USES_FORK_SERVER 0
#define SYZ_EXECUTOR_USES_SHMEM 0
#define SYZ_PAGE_SIZE 4096
diff --git a/executor/syscalls.h b/executor/syscalls.h
index a4cfbe18d..bbdd80480 100644
--- a/executor/syscalls.h
+++ b/executor/syscalls.h
@@ -1267,7 +1267,6 @@ const call_t syscalls[] = {
{"fdio_service_connect$fuchsia_ldsvc_Loader", 0, (syscall_t)fdio_service_connect},
{"fdio_service_connect$fuchsia_net_Connectivity", 0, (syscall_t)fdio_service_connect},
{"fdio_service_connect$fuchsia_net_NameLookup", 0, (syscall_t)fdio_service_connect},
- {"fdio_service_connect$fuchsia_net_SocketControl", 0, (syscall_t)fdio_service_connect},
{"fdio_service_connect$fuchsia_net_SocketProvider", 0, (syscall_t)fdio_service_connect},
{"fdio_service_connect$fuchsia_net_stack_Stack", 0, (syscall_t)fdio_service_connect},
{"fdio_service_connect$fuchsia_process_Launcher", 0, (syscall_t)fdio_service_connect},
@@ -1449,18 +1448,7 @@ const call_t syscalls[] = {
{"zx_channel_call$fuchsia_ldsvc_LoaderLoadScriptInterpreter", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_NameLookupLookupHostname", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_NameLookupLookupIp", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlAccept", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlBind", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlClose", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlConnect", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlGetPeerName", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlGetSockName", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlGetSockOpt", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlIoctl", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlListen", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlSetSockOpt", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_SocketProviderGetAddrInfo", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketProviderSocket", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_stack_StackAddEthernetInterface", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_stack_StackAddForwardingEntry", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_stack_StackAddInterfaceAddress", 0, (syscall_t)zx_channel_call},
@@ -1501,7 +1489,6 @@ const call_t syscalls[] = {
{"zx_channel_create$fuchsia_ldsvc_Loader", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_net_Connectivity", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_net_NameLookup", 0, (syscall_t)zx_channel_create},
- {"zx_channel_create$fuchsia_net_SocketControl", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_net_SocketProvider", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_net_stack_Stack", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_process_Launcher", 0, (syscall_t)zx_channel_create},
@@ -1601,10 +1588,8 @@ const call_t syscalls[] = {
{"zx_process_exit", 0, (syscall_t)zx_process_exit},
{"zx_process_read_memory", 0, (syscall_t)zx_process_read_memory},
{"zx_process_start", 0, (syscall_t)zx_process_start},
- {"zx_socket_accept", 0, (syscall_t)zx_socket_accept},
{"zx_socket_create", 0, (syscall_t)zx_socket_create},
{"zx_socket_read", 0, (syscall_t)zx_socket_read},
- {"zx_socket_share", 0, (syscall_t)zx_socket_share},
{"zx_socket_shutdown", 0, (syscall_t)zx_socket_shutdown},
{"zx_socket_write", 0, (syscall_t)zx_socket_write},
{"zx_system_get_num_cpus", 0, (syscall_t)zx_system_get_num_cpus},
@@ -1687,7 +1672,6 @@ const call_t syscalls[] = {
{"fdio_service_connect$fuchsia_ldsvc_Loader", 0, (syscall_t)fdio_service_connect},
{"fdio_service_connect$fuchsia_net_Connectivity", 0, (syscall_t)fdio_service_connect},
{"fdio_service_connect$fuchsia_net_NameLookup", 0, (syscall_t)fdio_service_connect},
- {"fdio_service_connect$fuchsia_net_SocketControl", 0, (syscall_t)fdio_service_connect},
{"fdio_service_connect$fuchsia_net_SocketProvider", 0, (syscall_t)fdio_service_connect},
{"fdio_service_connect$fuchsia_net_stack_Stack", 0, (syscall_t)fdio_service_connect},
{"fdio_service_connect$fuchsia_process_Launcher", 0, (syscall_t)fdio_service_connect},
@@ -1869,18 +1853,7 @@ const call_t syscalls[] = {
{"zx_channel_call$fuchsia_ldsvc_LoaderLoadScriptInterpreter", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_NameLookupLookupHostname", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_NameLookupLookupIp", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlAccept", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlBind", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlClose", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlConnect", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlGetPeerName", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlGetSockName", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlGetSockOpt", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlIoctl", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlListen", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketControlSetSockOpt", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_SocketProviderGetAddrInfo", 0, (syscall_t)zx_channel_call},
- {"zx_channel_call$fuchsia_net_SocketProviderSocket", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_stack_StackAddEthernetInterface", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_stack_StackAddForwardingEntry", 0, (syscall_t)zx_channel_call},
{"zx_channel_call$fuchsia_net_stack_StackAddInterfaceAddress", 0, (syscall_t)zx_channel_call},
@@ -1921,7 +1894,6 @@ const call_t syscalls[] = {
{"zx_channel_create$fuchsia_ldsvc_Loader", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_net_Connectivity", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_net_NameLookup", 0, (syscall_t)zx_channel_create},
- {"zx_channel_create$fuchsia_net_SocketControl", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_net_SocketProvider", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_net_stack_Stack", 0, (syscall_t)zx_channel_create},
{"zx_channel_create$fuchsia_process_Launcher", 0, (syscall_t)zx_channel_create},
@@ -2021,10 +1993,8 @@ const call_t syscalls[] = {
{"zx_process_exit", 0, (syscall_t)zx_process_exit},
{"zx_process_read_memory", 0, (syscall_t)zx_process_read_memory},
{"zx_process_start", 0, (syscall_t)zx_process_start},
- {"zx_socket_accept", 0, (syscall_t)zx_socket_accept},
{"zx_socket_create", 0, (syscall_t)zx_socket_create},
{"zx_socket_read", 0, (syscall_t)zx_socket_read},
- {"zx_socket_share", 0, (syscall_t)zx_socket_share},
{"zx_socket_shutdown", 0, (syscall_t)zx_socket_shutdown},
{"zx_socket_write", 0, (syscall_t)zx_socket_write},
{"zx_system_get_num_cpus", 0, (syscall_t)zx_system_get_num_cpus},
@@ -3932,6 +3902,7 @@ const call_t syscalls[] = {
{"read", 3},
{"read$FUSE", 3},
{"read$alg", 3},
+ {"read$char_usb", 3},
{"read$eventfd", 3},
{"read$hiddev", 3},
{"read$hidraw", 3},
@@ -4561,6 +4532,7 @@ const call_t syscalls[] = {
{"syz_open_dev$audion", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$binder", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$cec", 0, (syscall_t)syz_open_dev},
+ {"syz_open_dev$char_usb", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dmmidi", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dri", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dricontrol", 0, (syscall_t)syz_open_dev},
@@ -4603,9 +4575,13 @@ const call_t syscalls[] = {
{"syz_open_pts", 0, (syscall_t)syz_open_pts},
{"syz_read_part_table", 0, (syscall_t)syz_read_part_table},
{"syz_usb_connect", 0, (syscall_t)syz_usb_connect},
+ {"syz_usb_connect$cdc_ecm", 0, (syscall_t)syz_usb_connect},
+ {"syz_usb_connect$cdc_ncm", 0, (syscall_t)syz_usb_connect},
{"syz_usb_connect$hid", 0, (syscall_t)syz_usb_connect},
{"syz_usb_connect$printer", 0, (syscall_t)syz_usb_connect},
{"syz_usb_control_io", 0, (syscall_t)syz_usb_control_io},
+ {"syz_usb_control_io$cdc_ecm", 0, (syscall_t)syz_usb_control_io},
+ {"syz_usb_control_io$cdc_ncm", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_control_io$hid", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_control_io$printer", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_disconnect", 0, (syscall_t)syz_usb_disconnect},
@@ -4790,6 +4766,7 @@ const call_t syscalls[] = {
{"write$cgroup_pid", 4},
{"write$cgroup_subtree", 4},
{"write$cgroup_type", 4},
+ {"write$char_usb", 4},
{"write$evdev", 4},
{"write$eventfd", 4},
{"write$hidraw", 4},
@@ -6691,6 +6668,7 @@ const call_t syscalls[] = {
{"read", 0},
{"read$FUSE", 0},
{"read$alg", 0},
+ {"read$char_usb", 0},
{"read$eventfd", 0},
{"read$hiddev", 0},
{"read$hidraw", 0},
@@ -7321,6 +7299,7 @@ const call_t syscalls[] = {
{"syz_open_dev$audion", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$binder", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$cec", 0, (syscall_t)syz_open_dev},
+ {"syz_open_dev$char_usb", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dmmidi", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dri", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dricontrol", 0, (syscall_t)syz_open_dev},
@@ -7363,9 +7342,13 @@ const call_t syscalls[] = {
{"syz_open_pts", 0, (syscall_t)syz_open_pts},
{"syz_read_part_table", 0, (syscall_t)syz_read_part_table},
{"syz_usb_connect", 0, (syscall_t)syz_usb_connect},
+ {"syz_usb_connect$cdc_ecm", 0, (syscall_t)syz_usb_connect},
+ {"syz_usb_connect$cdc_ncm", 0, (syscall_t)syz_usb_connect},
{"syz_usb_connect$hid", 0, (syscall_t)syz_usb_connect},
{"syz_usb_connect$printer", 0, (syscall_t)syz_usb_connect},
{"syz_usb_control_io", 0, (syscall_t)syz_usb_control_io},
+ {"syz_usb_control_io$cdc_ecm", 0, (syscall_t)syz_usb_control_io},
+ {"syz_usb_control_io$cdc_ncm", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_control_io$hid", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_control_io$printer", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_disconnect", 0, (syscall_t)syz_usb_disconnect},
@@ -7550,6 +7533,7 @@ const call_t syscalls[] = {
{"write$cgroup_pid", 1},
{"write$cgroup_subtree", 1},
{"write$cgroup_type", 1},
+ {"write$char_usb", 1},
{"write$evdev", 1},
{"write$eventfd", 1},
{"write$hidraw", 1},
@@ -9405,6 +9389,7 @@ const call_t syscalls[] = {
{"read", 3},
{"read$FUSE", 3},
{"read$alg", 3},
+ {"read$char_usb", 3},
{"read$eventfd", 3},
{"read$hiddev", 3},
{"read$hidraw", 3},
@@ -10033,6 +10018,7 @@ const call_t syscalls[] = {
{"syz_open_dev$audion", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$binder", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$cec", 0, (syscall_t)syz_open_dev},
+ {"syz_open_dev$char_usb", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dmmidi", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dri", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dricontrol", 0, (syscall_t)syz_open_dev},
@@ -10075,9 +10061,13 @@ const call_t syscalls[] = {
{"syz_open_pts", 0, (syscall_t)syz_open_pts},
{"syz_read_part_table", 0, (syscall_t)syz_read_part_table},
{"syz_usb_connect", 0, (syscall_t)syz_usb_connect},
+ {"syz_usb_connect$cdc_ecm", 0, (syscall_t)syz_usb_connect},
+ {"syz_usb_connect$cdc_ncm", 0, (syscall_t)syz_usb_connect},
{"syz_usb_connect$hid", 0, (syscall_t)syz_usb_connect},
{"syz_usb_connect$printer", 0, (syscall_t)syz_usb_connect},
{"syz_usb_control_io", 0, (syscall_t)syz_usb_control_io},
+ {"syz_usb_control_io$cdc_ecm", 0, (syscall_t)syz_usb_control_io},
+ {"syz_usb_control_io$cdc_ncm", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_control_io$hid", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_control_io$printer", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_disconnect", 0, (syscall_t)syz_usb_disconnect},
@@ -10260,6 +10250,7 @@ const call_t syscalls[] = {
{"write$cgroup_pid", 4},
{"write$cgroup_subtree", 4},
{"write$cgroup_type", 4},
+ {"write$char_usb", 4},
{"write$evdev", 4},
{"write$eventfd", 4},
{"write$hidraw", 4},
@@ -12100,6 +12091,7 @@ const call_t syscalls[] = {
{"read", 63},
{"read$FUSE", 63},
{"read$alg", 63},
+ {"read$char_usb", 63},
{"read$eventfd", 63},
{"read$hiddev", 63},
{"read$hidraw", 63},
@@ -12719,6 +12711,7 @@ const call_t syscalls[] = {
{"syz_open_dev$audion", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$binder", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$cec", 0, (syscall_t)syz_open_dev},
+ {"syz_open_dev$char_usb", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dmmidi", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dri", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dricontrol", 0, (syscall_t)syz_open_dev},
@@ -12761,9 +12754,13 @@ const call_t syscalls[] = {
{"syz_open_pts", 0, (syscall_t)syz_open_pts},
{"syz_read_part_table", 0, (syscall_t)syz_read_part_table},
{"syz_usb_connect", 0, (syscall_t)syz_usb_connect},
+ {"syz_usb_connect$cdc_ecm", 0, (syscall_t)syz_usb_connect},
+ {"syz_usb_connect$cdc_ncm", 0, (syscall_t)syz_usb_connect},
{"syz_usb_connect$hid", 0, (syscall_t)syz_usb_connect},
{"syz_usb_connect$printer", 0, (syscall_t)syz_usb_connect},
{"syz_usb_control_io", 0, (syscall_t)syz_usb_control_io},
+ {"syz_usb_control_io$cdc_ecm", 0, (syscall_t)syz_usb_control_io},
+ {"syz_usb_control_io$cdc_ncm", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_control_io$hid", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_control_io$printer", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_disconnect", 0, (syscall_t)syz_usb_disconnect},
@@ -12942,6 +12939,7 @@ const call_t syscalls[] = {
{"write$cgroup_pid", 64},
{"write$cgroup_subtree", 64},
{"write$cgroup_type", 64},
+ {"write$char_usb", 64},
{"write$evdev", 64},
{"write$eventfd", 64},
{"write$hidraw", 64},
@@ -14796,6 +14794,7 @@ const call_t syscalls[] = {
{"read", 3},
{"read$FUSE", 3},
{"read$alg", 3},
+ {"read$char_usb", 3},
{"read$eventfd", 3},
{"read$hiddev", 3},
{"read$hidraw", 3},
@@ -15423,6 +15422,7 @@ const call_t syscalls[] = {
{"syz_open_dev$audion", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$binder", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$cec", 0, (syscall_t)syz_open_dev},
+ {"syz_open_dev$char_usb", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dmmidi", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dri", 0, (syscall_t)syz_open_dev},
{"syz_open_dev$dricontrol", 0, (syscall_t)syz_open_dev},
@@ -15465,9 +15465,13 @@ const call_t syscalls[] = {
{"syz_open_pts", 0, (syscall_t)syz_open_pts},
{"syz_read_part_table", 0, (syscall_t)syz_read_part_table},
{"syz_usb_connect", 0, (syscall_t)syz_usb_connect},
+ {"syz_usb_connect$cdc_ecm", 0, (syscall_t)syz_usb_connect},
+ {"syz_usb_connect$cdc_ncm", 0, (syscall_t)syz_usb_connect},
{"syz_usb_connect$hid", 0, (syscall_t)syz_usb_connect},
{"syz_usb_connect$printer", 0, (syscall_t)syz_usb_connect},
{"syz_usb_control_io", 0, (syscall_t)syz_usb_control_io},
+ {"syz_usb_control_io$cdc_ecm", 0, (syscall_t)syz_usb_control_io},
+ {"syz_usb_control_io$cdc_ncm", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_control_io$hid", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_control_io$printer", 0, (syscall_t)syz_usb_control_io},
{"syz_usb_disconnect", 0, (syscall_t)syz_usb_disconnect},
@@ -15652,6 +15656,7 @@ const call_t syscalls[] = {
{"write$cgroup_pid", 4},
{"write$cgroup_subtree", 4},
{"write$cgroup_type", 4},
+ {"write$char_usb", 4},
{"write$evdev", 4},
{"write$eventfd", 4},
{"write$hidraw", 4},
@@ -15917,6 +15922,7 @@ const call_t syscalls[] = {
{"accept$inet", 30},
{"accept$inet6", 30},
{"accept$unix", 30},
+ {"acct", 51},
{"bind", 104},
{"bind$inet", 104},
{"bind$inet6", 104},
@@ -16025,6 +16031,8 @@ const call_t syscalls[] = {
{"ioctl$PCIOCGETROM", 54},
{"ioctl$PCIOCREAD", 54},
{"ioctl$PCIOCWRITE", 54},
+ {"ioctl$SPKRTONE", 54},
+ {"ioctl$SPKRTUNE", 54},
{"ioctl$TIOCCBRK", 54},
{"ioctl$TIOCCDTR", 54},
{"ioctl$TIOCCHKVERAUTH", 54},
@@ -16108,6 +16116,7 @@ const call_t syscalls[] = {
{"ioctl$WSMUXIO_REMOVE_DEVICE", 54},
{"kevent", 72},
{"kqueue", 269},
+ {"ktrace", 45},
{"lchown", 254},
{"link", 9},
{"linkat", 317},
@@ -16144,6 +16153,7 @@ const call_t syscalls[] = {
{"openat$klog", 321},
{"openat$null", 321},
{"openat$pci", 321},
+ {"openat$speaker", 321},
{"openat$tty", 321},
{"openat$vmm", 321},
{"openat$wsdisplay", 321},
@@ -16296,6 +16306,14 @@ const call_t syscalls[] = {
{"foo$fmt4", 0},
{"foo$fmt5", 0},
{"minimize$0", 0},
+ {"mutate$array", 0},
+ {"mutate$array2", 0},
+ {"mutate$flags", 0},
+ {"mutate$flags2", 0},
+ {"mutate$flags3", 0},
+ {"mutate$integer", 0},
+ {"mutate$integer2", 0},
+ {"mutate$union", 0},
{"mutate0", 0},
{"mutate1", 0},
{"mutate2", 0},
diff --git a/fuzzit.sh b/fuzzit.sh
index 61a68ef2d..7079658aa 100755
--- a/fuzzit.sh
+++ b/fuzzit.sh
@@ -2,6 +2,7 @@
# Copyright 2019 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.
+
# Helper script for working with fuzzit.dev
# https://github.com/fuzzitdev/example-go
@@ -10,16 +11,21 @@ set -eux
function target {
go-fuzz-build -libfuzzer -func $3 -o fuzzer.a $2
clang -fsanitize=fuzzer fuzzer.a -o fuzzer
- ./fuzzit create job --type fuzzing --branch $TRAVIS_BRANCH --revision $TRAVIS_COMMIT $1 ./fuzzer
+ ./fuzzit create job $LOCAL --type fuzzing --branch $TRAVIS_BRANCH --revision $TRAVIS_COMMIT syzkaller/$1 ./fuzzer
}
go get -u github.com/dvyukov/go-fuzz/go-fuzz-build
-wget -q -O fuzzit https://github.com/fuzzitdev/fuzzit/releases/download/v1.2.7/fuzzit_Linux_x86_64
+wget -q -O fuzzit https://github.com/fuzzitdev/fuzzit/releases/download/v2.4.12/fuzzit_Linux_x86_64
chmod a+x fuzzit
-./fuzzit auth ${FUZZIT_API_KEY}
+if [ "$1" = "fuzzing" ]; then
+ ./fuzzit auth ${FUZZIT_API_KEY}
+ export LOCAL=""
+else
+ export LOCAL="--local"
+fi
-target QOmcj5QL4FVtUWV2UmhG ./prog/test FuzzDeserialize
-target ddurE2yrDlqpklLYgNc6 ./prog/test FuzzParseLog
-target 4A7DVc22Gni7tUtZBc19 ./pkg/compiler Fuzz
-target YMCIxz61XkKWaB4jmiS5 ./pkg/report Fuzz
-target 1d75bUDf9zNQz1HgHyM0 ./tools/syz-trace2syz/proggen Fuzz
+target syzkaller-prog-deserialize ./prog/test FuzzDeserialize
+target syzkaller-prog-parselog ./prog/test FuzzParseLog
+target syzkaller-compiler ./pkg/compiler Fuzz
+target syzkaller-report ./pkg/report Fuzz
+target syzkaller-trace2syz ./tools/syz-trace2syz/proggen Fuzz
diff --git a/pkg/build/fuchsia.go b/pkg/build/fuchsia.go
index 850d02928..a1bff9127 100644
--- a/pkg/build/fuchsia.go
+++ b/pkg/build/fuchsia.go
@@ -14,6 +14,15 @@ import (
type fuchsia struct{}
+func runSandboxed(timeout time.Duration, dir, command string, arg ...string) ([]byte, error) {
+ cmd := osutil.Command(command, arg...)
+ cmd.Dir = dir
+ if err := osutil.Sandbox(cmd, true, false); err != nil {
+ return nil, err
+ }
+ return osutil.Run(timeout, cmd)
+}
+
func (fu fuchsia) build(targetArch, vmType, kernelDir, outputDir, compiler, userspaceDir,
cmdlineFile, sysctlFile string, config []byte) error {
sysTarget := targets.Get("fuchsia", targetArch)
@@ -22,11 +31,11 @@ func (fu fuchsia) build(targetArch, vmType, kernelDir, outputDir, compiler, user
}
arch := sysTarget.KernelHeaderArch
product := fmt.Sprintf("%s.%s", "core", arch)
- if _, err := osutil.RunCmd(time.Hour, kernelDir, "scripts/fx", "--dir", "out/"+arch,
+ if _, err := runSandboxed(time.Hour, kernelDir, "scripts/fx", "--dir", "out/"+arch,
"set", product, "--with-base", "//bundles:tools"); err != nil {
return err
}
- if _, err := osutil.RunCmd(time.Hour, kernelDir, "scripts/fx", "clean-build"); err != nil {
+ if _, err := runSandboxed(time.Hour*2, kernelDir, "scripts/fx", "clean-build"); err != nil {
return err
}
@@ -34,7 +43,7 @@ func (fu fuchsia) build(targetArch, vmType, kernelDir, outputDir, compiler, user
sshZBI := filepath.Join(kernelDir, "out", arch, "fuchsia-ssh.zbi")
kernelZBI := filepath.Join(kernelDir, "out", arch, "fuchsia.zbi")
authorizedKeys := fmt.Sprintf("data/ssh/authorized_keys=%s", filepath.Join(kernelDir, ".ssh", "authorized_keys"))
- if _, err := osutil.RunCmd(time.Minute, kernelDir, "out/"+arch+".zircon/tools/zbi",
+ if _, err := runSandboxed(time.Minute, kernelDir, "out/"+arch+".zircon/tools/zbi",
"-o", sshZBI, kernelZBI, "--entry", authorizedKeys); err != nil {
return err
}
diff --git a/pkg/build/linux.go b/pkg/build/linux.go
index c56595743..3c1051ff9 100644
--- a/pkg/build/linux.go
+++ b/pkg/build/linux.go
@@ -15,7 +15,6 @@ import (
"os"
"path/filepath"
"runtime"
- "strconv"
"time"
"github.com/google/syzkaller/pkg/osutil"
@@ -46,12 +45,7 @@ func (linux) buildKernel(targetArch, kernelDir, outputDir, compiler string, conf
// One would expect olddefconfig here, but olddefconfig is not present in v3.6 and below.
// oldconfig is the same as olddefconfig if stdin is not set.
// Note: passing in compiler is important since 4.17 (at the very least it's noted in the config).
- cmd := osutil.Command("make", "oldconfig", "CC="+compiler)
- if err := osutil.Sandbox(cmd, true, true); err != nil {
- return err
- }
- cmd.Dir = kernelDir
- if _, err := osutil.Run(10*time.Minute, cmd); err != nil {
+ if err := runMake(kernelDir, "oldconfig", "CC="+compiler); err != nil {
return err
}
// Write updated kernel config early, so that it's captured on build failures.
@@ -60,8 +54,6 @@ func (linux) buildKernel(targetArch, kernelDir, outputDir, compiler string, conf
return err
}
// We build only zImage/bzImage as we currently don't use modules.
- cpu := strconv.Itoa(runtime.NumCPU())
-
var target string
switch targetArch {
case "386", "amd64":
@@ -69,13 +61,7 @@ func (linux) buildKernel(targetArch, kernelDir, outputDir, compiler string, conf
case "ppc64le":
target = "zImage"
}
- cmd = osutil.Command("make", target, "-j", cpu, "CC="+compiler)
-
- if err := osutil.Sandbox(cmd, true, true); err != nil {
- return err
- }
- cmd.Dir = kernelDir
- if _, err := osutil.Run(time.Hour, cmd); err != nil {
+ if err := runMake(kernelDir, target, "CC="+compiler); err != nil {
return err
}
vmlinux := filepath.Join(kernelDir, "vmlinux")
@@ -132,12 +118,26 @@ func (linux) createImage(targetArch, vmType, kernelDir, outputDir, userspaceDir,
}
func (linux) clean(kernelDir, targetArch string) error {
- cpu := strconv.Itoa(runtime.NumCPU())
- cmd := osutil.Command("make", "distclean", "-j", cpu)
+ return runMake(kernelDir, "distclean")
+}
+
+func runMake(kernelDir string, args ...string) error {
+ args = append(args, fmt.Sprintf("-j%v", runtime.NumCPU()))
+ cmd := osutil.Command("make", args...)
if err := osutil.Sandbox(cmd, true, true); err != nil {
return err
}
cmd.Dir = kernelDir
- _, err := osutil.Run(10*time.Minute, cmd)
+ cmd.Env = append([]string{}, os.Environ()...)
+ // This makes the build [more] deterministic:
+ // 2 builds from the same sources should result in the same vmlinux binary.
+ // We plan to use it for detecting no-op changes during bisection.
+ cmd.Env = append(cmd.Env,
+ "KBUILD_BUILD_VERSION=0",
+ "KBUILD_BUILD_TIMESTAMP=now",
+ "KBUILD_BUILD_USER=syzkaller",
+ "KBUILD_BUILD_HOST=syzkaller",
+ )
+ _, err := osutil.Run(time.Hour, cmd)
return err
}
diff --git a/pkg/compiler/check.go b/pkg/compiler/check.go
index 24acfe50f..eb57228ca 100644
--- a/pkg/compiler/check.go
+++ b/pkg/compiler/check.go
@@ -940,6 +940,7 @@ func (comp *compiler) instantiate(templ ast.Node, params []*ast.Ident, args []*a
for i, param := range params {
argMap[param.Name] = args[i]
}
+ argUsed := make(map[string]bool)
err0 := comp.errors
templ.Walk(ast.Recursive(func(n ast.Node) {
templArg, ok := n.(*ast.Type)
@@ -947,6 +948,7 @@ func (comp *compiler) instantiate(templ ast.Node, params []*ast.Ident, args []*a
return
}
if concreteArg := argMap[templArg.Ident]; concreteArg != nil {
+ argUsed[templArg.Ident] = true
origArgs := templArg.Args
if len(origArgs) != 0 && len(concreteArg.Args) != 0 {
comp.error(templArg.Pos, "both template parameter %v and its usage"+
@@ -965,11 +967,18 @@ func (comp *compiler) instantiate(templ ast.Node, params []*ast.Ident, args []*a
if len(templArg.Colon) != 0 {
col := templArg.Colon[0]
if concreteArg := argMap[col.Ident]; concreteArg != nil {
+ argUsed[col.Ident] = true
col.Ident = concreteArg.Ident
col.Pos = concreteArg.Pos
}
}
}))
+ for _, param := range params {
+ if !argUsed[param.Name] {
+ comp.error(argMap[param.Name].Pos,
+ "template argument %v is not used", param.Name)
+ }
+ }
return err0 == comp.errors
}
diff --git a/pkg/compiler/testdata/errors.txt b/pkg/compiler/testdata/errors.txt
index 8c44694bb..bd7182252 100644
--- a/pkg/compiler/testdata/errors.txt
+++ b/pkg/compiler/testdata/errors.txt
@@ -298,7 +298,7 @@ type templ_struct1[STR] {
}
type templ_struct2[A] {
- f B ### unknown type B
+ f B
}
type templ_base0[TYPE] {
@@ -323,7 +323,7 @@ foo$202(a templ0) ### template templ0 needs 2 arguments instead of 0
foo$203(a type0[42]) ### type type0 is not a template
foo$204(a ptr[in, templ_struct0[42, int8]])
foo$205(a ptr[in, templ_struct0[int8, int8]])
-foo$207(a ptr[in, templ_struct2[1]])
+foo$207(a ptr[in, templ_struct2[1]]) ### template argument A is not used
# fmt
diff --git a/pkg/csource/common.go b/pkg/csource/common.go
index 587c0f587..f4da50b85 100644
--- a/pkg/csource/common.go
+++ b/pkg/csource/common.go
@@ -22,6 +22,7 @@ const (
linux = "linux"
freebsd = "freebsd"
openbsd = "openbsd"
+ netbsd = "netbsd"
sandboxNone = "none"
sandboxSetuid = "setuid"
diff --git a/pkg/csource/generated.go b/pkg/csource/generated.go
index 6d77fc57c..987dc0152 100644
--- a/pkg/csource/generated.go
+++ b/pkg/csource/generated.go
@@ -35,7 +35,7 @@ NORETURN void doexit(int status)
#if SYZ_EXECUTOR || SYZ_PROCS || SYZ_REPEAT && SYZ_ENABLE_CGROUPS || \
SYZ_ENABLE_NETDEV || __NR_syz_mount_image || __NR_syz_read_part_table || \
- __NR_syz_usb_connect || (GOOS_openbsd || GOOS_freebsd) && SYZ_TUN_ENABLE
+ __NR_syz_usb_connect || (GOOS_freebsd || GOOS_openbsd || GOOS_netbsd) && SYZ_TUN_ENABLE
unsigned long long procid;
#endif
@@ -152,6 +152,8 @@ static void use_temporary_dir(void)
{
#if SYZ_SANDBOX_ANDROID_UNTRUSTED_APP
char tmpdir_template[] = "/data/data/syzkaller/syzkaller.XXXXXX";
+#elif GOOS_fuchsia
+ char tmpdir_template[] = "/tmp/syzkaller.XXXXXX";
#else
char tmpdir_template[] = "./syzkaller.XXXXXX";
#endif
@@ -440,7 +442,13 @@ static uintptr_t syz_open_pts(void)
static int tunfd = -1;
#define SYZ_TUN_MAX_PACKET_SIZE 1000
+
+#if GOOS_netbsd
+#define MAX_TUN 64
+
+#else
#define MAX_TUN 4
+#endif
#define TUN_IFACE "tap%d"
#define TUN_DEVICE "/dev/tap%d"
@@ -1747,28 +1755,33 @@ static long syz_extract_tcp_res(volatile long a0, volatile long a1, volatile lon
#define USB_DEBUG 0
+#define USB_MAX_IFACE_NUM 4
#define USB_MAX_EP_NUM 32
+struct usb_iface_index {
+ struct usb_interface_descriptor* iface;
+ struct usb_endpoint_descriptor* eps[USB_MAX_EP_NUM];
+ unsigned eps_num;
+};
+
struct usb_device_index {
struct usb_device_descriptor* dev;
struct usb_config_descriptor* config;
unsigned config_length;
- struct usb_interface_descriptor* iface;
- struct usb_endpoint_descriptor* eps[USB_MAX_EP_NUM];
- unsigned eps_num;
+ struct usb_iface_index ifaces[USB_MAX_IFACE_NUM];
+ unsigned ifaces_num;
};
static bool parse_usb_descriptor(char* buffer, size_t length, struct usb_device_index* index)
{
- if (length < sizeof(*index->dev) + sizeof(*index->config) + sizeof(*index->iface))
+ if (length < sizeof(*index->dev) + sizeof(*index->config))
return false;
+ memset(index, 0, sizeof(*index));
+
index->dev = (struct usb_device_descriptor*)buffer;
index->config = (struct usb_config_descriptor*)(buffer + sizeof(*index->dev));
index->config_length = length - sizeof(*index->dev);
- index->iface = (struct usb_interface_descriptor*)(buffer + sizeof(*index->dev) + sizeof(*index->config));
-
- index->eps_num = 0;
size_t offset = 0;
while (true) {
@@ -1780,12 +1793,18 @@ static bool parse_usb_descriptor(char* buffer, size_t length, struct usb_device_
break;
if (offset + desc_length > length)
break;
- if (desc_type == USB_DT_ENDPOINT) {
- index->eps[index->eps_num] = (struct usb_endpoint_descriptor*)(buffer + offset);
- index->eps_num++;
+ if (desc_type == USB_DT_INTERFACE && index->ifaces_num < USB_MAX_IFACE_NUM) {
+ struct usb_interface_descriptor* iface = (struct usb_interface_descriptor*)(buffer + offset);
+ debug("parse_usb_descriptor: found interface #%u (%d, %d) at %p\n",
+ index->ifaces_num, iface->bInterfaceNumber, iface->bAlternateSetting, iface);
+ index->ifaces[index->ifaces_num++].iface = iface;
+ }
+ if (desc_type == USB_DT_ENDPOINT && index->ifaces_num > 0) {
+ struct usb_iface_index* iface = &index->ifaces[index->ifaces_num - 1];
+ debug("parse_usb_descriptor: found endpoint #%u at %p\n", iface->eps_num, buffer + offset);
+ if (iface->eps_num < USB_MAX_EP_NUM)
+ iface->eps[iface->eps_num++] = (struct usb_endpoint_descriptor*)(buffer + offset);
}
- if (index->eps_num == USB_MAX_EP_NUM)
- break;
offset += desc_length;
}
@@ -1917,7 +1936,15 @@ struct vusb_connect_descriptors {
struct vusb_connect_string_descriptor strs[0];
} __attribute__((packed));
-static const char* default_string = "syzkaller";
+static const char default_string[] = {
+ 8, USB_DT_STRING,
+ 's', 0, 'y', 0, 'z', 0
+};
+
+static const char default_lang_id[] = {
+ 4, USB_DT_STRING,
+ 0x09, 0x04
+};
static bool lookup_connect_response(struct vusb_connect_descriptors* descs, struct usb_device_index* index,
struct usb_ctrlrequest* ctrl, char** response_data, uint32* response_length)
@@ -1939,13 +1966,18 @@ static bool lookup_connect_response(struct vusb_connect_descriptors* descs, stru
return true;
case USB_DT_STRING:
str_idx = (uint8)ctrl->wValue;
- if (str_idx >= descs->strs_len) {
- *response_data = (char*)default_string;
- *response_length = strlen(default_string);
- } else {
+ if (descs && str_idx < descs->strs_len) {
*response_data = descs->strs[str_idx].str;
*response_length = descs->strs[str_idx].len;
+ return true;
+ }
+ if (str_idx == 0) {
+ *response_data = (char*)&default_lang_id[0];
+ *response_length = default_lang_id[0];
+ return true;
}
+ *response_data = (char*)&default_string[0];
+ *response_length = default_string[0];
return true;
case USB_DT_BOS:
*response_data = descs->bos;
@@ -1956,17 +1988,17 @@ static bool lookup_connect_response(struct vusb_connect_descriptors* descs, stru
*response_length = descs->qual_len;
return true;
default:
- fail("syz_usb_connect: no response");
+ fail("lookup_connect_response: no response");
return false;
}
break;
default:
- fail("syz_usb_connect: no response");
+ fail("lookup_connect_response: no response");
return false;
}
break;
default:
- fail("syz_usb_connect: no response");
+ fail("lookup_connect_response: no response");
return false;
}
@@ -1997,7 +2029,7 @@ static volatile long syz_usb_connect(volatile long a0, volatile long a1, volatil
debug("syz_usb_connect: parse_usb_descriptor failed with %d\n", rv);
return rv;
}
- debug("syz_usb_connect: parsed usb descriptor, %d endpoints found\n", index.eps_num);
+ debug("syz_usb_connect: parsed usb descriptor\n");
int fd = usb_fuzzer_open();
if (fd < 0) {
@@ -2034,7 +2066,7 @@ static volatile long syz_usb_connect(volatile long a0, volatile long a1, volatil
if (event.inner.type != USB_FUZZER_EVENT_CONTROL)
continue;
- debug("syz_usb_connect: bRequestType: 0x%x (%s), bRequest: 0x%x, wValue: 0x%x, wIndex: 0x%x, wLength: %d\n",
+ debug("syz_usb_connect: bReqType: 0x%x (%s), bReq: 0x%x, wVal: 0x%x, wIdx: 0x%x, wLen: %d\n",
event.ctrl.bRequestType, (event.ctrl.bRequestType & USB_DIR_IN) ? "IN" : "OUT",
event.ctrl.bRequest, event.ctrl.wValue, event.ctrl.wIndex, event.ctrl.wLength);
@@ -2069,10 +2101,10 @@ static volatile long syz_usb_connect(volatile long a0, volatile long a1, volatil
return rv;
}
unsigned ep;
- for (ep = 0; ep < index.eps_num; ep++) {
- rv = usb_fuzzer_ep_enable(fd, index.eps[ep]);
+ for (ep = 0; ep < index.ifaces[0].eps_num; ep++) {
+ rv = usb_fuzzer_ep_enable(fd, index.ifaces[0].eps[ep]);
if (rv < 0) {
- debug("syz_usb_connect: usb_fuzzer_ep_enable failed with %d\n", rv);
+ debug("syz_usb_connect: usb_fuzzer_ep_enable(%d) failed with %d\n", ep, rv);
} else {
debug("syz_usb_connect: endpoint %d enabled\n", ep);
}
@@ -2092,11 +2124,14 @@ static volatile long syz_usb_connect(volatile long a0, volatile long a1, volatil
else
memset(&response.data[0], 0, response_length);
- debug("syz_usb_connect: reply length = %d\n", response.inner.length);
- if (event.ctrl.bRequestType & USB_DIR_IN)
+ if (event.ctrl.bRequestType & USB_DIR_IN) {
+ debug("syz_usb_connect: writing %d bytes\n", response.inner.length);
rv = usb_fuzzer_ep0_write(fd, (struct usb_fuzzer_ep_io*)&response);
- else
+ } else {
rv = usb_fuzzer_ep0_read(fd, (struct usb_fuzzer_ep_io*)&response);
+ debug("syz_usb_connect: read %d bytes\n", response.inner.length);
+ debug_dump_data(&event.data[0], response.inner.length);
+ }
if (rv < 0) {
debug("syz_usb_connect: usb_fuzzer_ep0_read/write failed with %d\n", rv);
return rv;
@@ -2140,8 +2175,13 @@ struct vusb_responses {
static bool lookup_control_response(struct vusb_descriptors* descs, struct vusb_responses* resps,
struct usb_ctrlrequest* ctrl, char** response_data, uint32* response_length)
{
- int descs_num = (descs->len - offsetof(struct vusb_descriptors, descs)) / sizeof(descs->descs[0]);
- int resps_num = (resps->len - offsetof(struct vusb_responses, resps)) / sizeof(resps->resps[0]);
+ int descs_num = 0;
+ int resps_num = 0;
+
+ if (descs)
+ descs_num = (descs->len - offsetof(struct vusb_descriptors, descs)) / sizeof(descs->descs[0]);
+ if (resps)
+ resps_num = (resps->len - offsetof(struct vusb_responses, resps)) / sizeof(resps->resps[0]);
uint8 req = ctrl->bRequest;
uint8 req_type = ctrl->bRequestType & USB_TYPE_MASK;
@@ -2164,7 +2204,7 @@ static bool lookup_control_response(struct vusb_descriptors* descs, struct vusb_
}
}
- if (descs->generic) {
+ if (descs && descs->generic) {
*response_data = &descs->generic->data[0];
*response_length = descs->generic->len;
return true;
@@ -2186,7 +2226,7 @@ static bool lookup_control_response(struct vusb_descriptors* descs, struct vusb_
}
}
- if (resps->generic) {
+ if (resps && resps->generic) {
*response_data = &resps->generic->data[0];
*response_length = resps->generic->len;
return true;
@@ -2253,7 +2293,7 @@ static volatile long syz_usb_control_io(volatile long a0, volatile long a1, vola
return -1;
}
- debug("syz_usb_control_io: bRequestType: 0x%x (%s), bRequest: 0x%x, wValue: 0x%x, wIndex: 0x%x, wLength: %d\n",
+ debug("syz_usb_control_io: bReqType: 0x%x (%s), bReq: 0x%x, wVal: 0x%x, wIdx: 0x%x, wLen: %d\n",
event.ctrl.bRequestType, (event.ctrl.bRequestType & USB_DIR_IN) ? "IN" : "OUT",
event.ctrl.bRequest, event.ctrl.wValue, event.ctrl.wIndex, event.ctrl.wLength);
@@ -2288,12 +2328,12 @@ static volatile long syz_usb_control_io(volatile long a0, volatile long a1, vola
memset(&response.data[0], 0, response_length);
if (event.ctrl.bRequestType & USB_DIR_IN) {
- debug("syz_usb_control_io: IN, length = %d\n", response.inner.length);
+ debug("syz_usb_control_io: writing %d bytes\n", response.inner.length);
debug_dump_data(&response.data[0], response.inner.length);
rv = usb_fuzzer_ep0_write(fd, (struct usb_fuzzer_ep_io*)&response);
} else {
rv = usb_fuzzer_ep0_read(fd, (struct usb_fuzzer_ep_io*)&response);
- debug("syz_usb_control_io: OUT, length = %d\n", response.inner.length);
+ debug("syz_usb_control_io: read %d bytes\n", response.inner.length);
debug_dump_data(&event.data[0], response.inner.length);
}
if (rv < 0) {
diff --git a/pkg/csource/options.go b/pkg/csource/options.go
index e63a76890..2eda3acc6 100644
--- a/pkg/csource/options.go
+++ b/pkg/csource/options.go
@@ -105,7 +105,7 @@ func (opts Options) checkLinuxOnly(OS string) error {
if OS == linux {
return nil
}
- if opts.EnableTun && !(OS == openbsd || OS == freebsd) {
+ if opts.EnableTun && !(OS == openbsd || OS == freebsd || OS == netbsd) {
return fmt.Errorf("option EnableTun is not supported on %v", OS)
}
if opts.EnableNetDev {
@@ -124,7 +124,7 @@ func (opts Options) checkLinuxOnly(OS string) error {
return fmt.Errorf("EnableCloseFds is not supported on %v", OS)
}
if opts.Sandbox == sandboxNamespace ||
- (opts.Sandbox == sandboxSetuid && !(OS == openbsd || OS == freebsd)) ||
+ (opts.Sandbox == sandboxSetuid && !(OS == openbsd || OS == freebsd || OS == netbsd)) ||
opts.Sandbox == sandboxAndroidUntrustedApp {
return fmt.Errorf("option Sandbox=%v is not supported on %v", opts.Sandbox, OS)
}
diff --git a/pkg/host/host.go b/pkg/host/host.go
index 25f762608..c7454d12b 100644
--- a/pkg/host/host.go
+++ b/pkg/host/host.go
@@ -20,7 +20,8 @@ func DetectSupportedSyscalls(target *prog.Target, sandbox string) (
supported := make(map[*prog.Syscall]bool)
unsupported := make(map[*prog.Syscall]string)
// Akaros does not have own host and parasitizes on some other OS.
- if target.OS == "akaros" || target.OS == "test" {
+ switch target.OS {
+ case "akaros", "fuchsia", "test":
for _, c := range target.Syscalls {
supported[c] = true
}
@@ -106,7 +107,8 @@ func Check(target *prog.Target) (*Features, error) {
FeatureNetworkInjection: {Name: "net packet injection", Reason: unsupported},
FeatureNetworkDevices: {Name: "net device setup", Reason: unsupported},
}
- if target.OS == "akaros" || target.OS == "test" {
+ switch target.OS {
+ case "akaros", "fuchsia", "test":
return res, nil
}
for n, check := range checkFeature {
@@ -126,7 +128,8 @@ func Check(target *prog.Target) (*Features, error) {
// Setup enables and does any one-time setup for the requested features on the host.
// Note: this can be called multiple times and must be idempotent.
func Setup(target *prog.Target, features *Features, featureFlags csource.Features, executor string) error {
- if target.OS == "akaros" {
+ switch target.OS {
+ case "akaros", "fuchsia":
return nil
}
args := []string{"setup"}
diff --git a/pkg/host/host_linux.go b/pkg/host/host_linux.go
index 54a4f093c..25da4b016 100644
--- a/pkg/host/host_linux.go
+++ b/pkg/host/host_linux.go
@@ -8,7 +8,6 @@ import (
"fmt"
"io/ioutil"
"os"
- "os/exec"
"regexp"
"runtime"
"strconv"
@@ -395,7 +394,7 @@ func init() {
checkFeature[FeatureFaultInjection] = checkFaultInjection
checkFeature[FeatureLeakChecking] = checkLeakChecking
checkFeature[FeatureNetworkInjection] = checkNetworkInjection
- checkFeature[FeatureNetworkDevices] = checkNetworkDevices
+ checkFeature[FeatureNetworkDevices] = unconditionallyEnabled
}
func checkCoverage() string {
@@ -541,7 +540,7 @@ func checkNetworkInjection() string {
if err := osutil.IsAccessible("/dev/net/tun"); err != nil {
return err.Error()
}
- return checkNetworkDevices()
+ return ""
}
func checkUSBInjection() string {
@@ -551,13 +550,6 @@ func checkUSBInjection() string {
return ""
}
-func checkNetworkDevices() string {
- if _, err := exec.LookPath("ip"); err != nil {
- return "ip command is not found"
- }
- return ""
-}
-
func checkDebugFS() string {
if err := osutil.IsAccessible("/sys/kernel/debug"); err != nil {
return "debugfs is not enabled or not mounted"
diff --git a/pkg/html/generated.go b/pkg/html/generated.go
index 3b11f3b83..6826b4124 100644
--- a/pkg/html/generated.go
+++ b/pkg/html/generated.go
@@ -130,8 +130,8 @@ table td, table th {
}
.list_table .stat {
- width: 50pt;
- max-width: 50pt;
+ width: 55pt;
+ max-width: 55pt;
font-family: monospace;
text-align: right;
}
@@ -221,7 +221,6 @@ function isSorted(values) {
function textSort(v) { return v.toLowerCase(); }
function numSort(v) { return -parseInt(v); }
function floatSort(v) { return -parseFloat(v); }
-function yesSort(v) { return v == "yes" ? 0 : 1; }
function reproSort(v) { return v == "C" ? 0 : v == "syz" ? 1 : 2; }
function patchedSort(v) { return v == "" ? -1 : parseInt(v); }
diff --git a/pkg/html/html.go b/pkg/html/html.go
index 9a43b0dba..1199c5ab0 100644
--- a/pkg/html/html.go
+++ b/pkg/html/html.go
@@ -51,6 +51,14 @@ var Funcs = template.FuncMap{
"formatTagHash": formatTagHash,
"formatCommitTableTitle": formatCommitTableTitle,
"formatList": formatStringList,
+ "selectBisect": selectBisect,
+}
+
+func selectBisect(rep *dashapi.BugReport) *dashapi.BisectResult {
+ if rep.BisectFix != nil {
+ return rep.BisectFix
+ }
+ return rep.BisectCause
}
func link(url, text string) template.HTML {
diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go
index f46673d47..cc1b147f1 100644
--- a/pkg/instance/instance.go
+++ b/pkg/instance/instance.go
@@ -394,7 +394,8 @@ func (inst *inst) testProgram(command string, testTime time.Duration) error {
func FuzzerCmd(fuzzer, executor, name, OS, arch, fwdAddr, sandbox string, procs, verbosity int,
cover, debug, test, runtest bool) string {
osArg := ""
- if OS == "akaros" {
+ switch OS {
+ case "akaros", "fuchsia":
// Only akaros needs OS, because the rest assume host OS.
// But speciying OS for all OSes breaks patch testing on syzbot
// because old execprog does not have os flag.
@@ -425,7 +426,8 @@ func ExecprogCmd(execprog, executor, OS, arch, sandbox string, repeat, threaded,
repeatCount = 0
}
osArg := ""
- if OS == "akaros" {
+ switch OS {
+ case "akaros", "fuchsia":
osArg = " -os=" + OS
}
return fmt.Sprintf("%v -executor=%v -arch=%v%v -sandbox=%v"+
diff --git a/pkg/instance/instance_test.go b/pkg/instance/instance_test.go
index f4ab3a588..5b9a28404 100644
--- a/pkg/instance/instance_test.go
+++ b/pkg/instance/instance_test.go
@@ -91,7 +91,7 @@ func TestExecprogCmd(t *testing.T) {
flagCollide := flags.Bool("collide", true, "collide syscalls to provoke data races")
flagSignal := flags.Bool("cover", false, "collect feedback signals (coverage)")
flagSandbox := flags.String("sandbox", "none", "sandbox for fuzzing (none/setuid/namespace)")
- cmdLine := ExecprogCmd(os.Args[0], "/myexecutor", "fuchsia", "386", "namespace", true, false, false, 7, 2, 3, "myprog")
+ cmdLine := ExecprogCmd(os.Args[0], "/myexecutor", "freebsd", "386", "namespace", true, false, false, 7, 2, 3, "myprog")
args := strings.Split(cmdLine, " ")[1:]
if err := flags.Parse(args); err != nil {
t.Fatal(err)
diff --git a/pkg/ipc/ipc.go b/pkg/ipc/ipc.go
index 89799b45a..978fcb7be 100644
--- a/pkg/ipc/ipc.go
+++ b/pkg/ipc/ipc.go
@@ -263,15 +263,13 @@ func (env *Env) Exec(opts *ExecOpts, p *prog.Prog) (output []byte, info *ProgInf
atomic.AddUint64(&env.StatExecs, 1)
if env.cmd == nil {
- if p.Target.OS == "akaros" {
+ switch p.Target.OS {
+ case "akaros", "fuchsia":
// On akaros executor is actually ssh,
// starting them too frequently leads to timeouts.
<-rateLimit.C
}
tmpDirPath := "./"
- if p.Target.OS == "fuchsia" {
- tmpDirPath = "/data/"
- }
atomic.AddUint64(&env.StatRestarts, 1)
env.cmd, err0 = makeCommand(env.pid, env.bin, env.config, env.inFile, env.outFile, env.out, tmpDirPath)
if err0 != nil {
diff --git a/pkg/mgrconfig/load.go b/pkg/mgrconfig/load.go
index a4cbc8914..f02f3c59c 100644
--- a/pkg/mgrconfig/load.go
+++ b/pkg/mgrconfig/load.go
@@ -105,15 +105,8 @@ func Complete(cfg *Config) error {
if err := checkSSHParams(cfg); err != nil {
return err
}
+ cfg.CompleteKernelDirs()
- cfg.KernelObj = osutil.Abs(cfg.KernelObj)
- if cfg.KernelSrc == "" {
- cfg.KernelSrc = cfg.KernelObj // assume in-tree build by default
- }
- cfg.KernelSrc = osutil.Abs(cfg.KernelSrc)
- if cfg.KernelBuildSrc == "" {
- cfg.KernelBuildSrc = cfg.KernelSrc
- }
if cfg.HubClient != "" && (cfg.Name == "" || cfg.HubAddr == "" || cfg.HubKey == "") {
return fmt.Errorf("hub_client is set, but name/hub_addr/hub_key is empty")
}
@@ -126,6 +119,17 @@ func Complete(cfg *Config) error {
return nil
}
+func (cfg *Config) CompleteKernelDirs() {
+ cfg.KernelObj = osutil.Abs(cfg.KernelObj)
+ if cfg.KernelSrc == "" {
+ cfg.KernelSrc = cfg.KernelObj // assume in-tree build by default
+ }
+ cfg.KernelSrc = osutil.Abs(cfg.KernelSrc)
+ if cfg.KernelBuildSrc == "" {
+ cfg.KernelBuildSrc = cfg.KernelSrc
+ }
+}
+
func checkSSHParams(cfg *Config) error {
if cfg.SSHUser == "" {
return fmt.Errorf("bad config syzkaller param: ssh user is empty")
diff --git a/pkg/report/gvisor.go b/pkg/report/gvisor.go
index 480ad24e8..958e98975 100644
--- a/pkg/report/gvisor.go
+++ b/pkg/report/gvisor.go
@@ -20,13 +20,15 @@ func ctorGvisor(cfg *config) (Reporter, []string, error) {
"fatal error: runtime: out of memory",
"fatal error: runtime: cannot allocate memory",
"fatal error: newosproc",
- "panic: ptrace sysemu failed: no such process", // OOM kill
- `panic: ptrace (s|g)et fpregs.* failed: no such process`, // OOM kill
- `panic: ptrace (s|g)et regs.* failed: no such process`, // OOM kill
- "panic: error initializing first thread: resource temporarily unavailable",
+ "panic: ptrace sysemu failed: no such process", // OOM kill
+ `panic: ptrace (s|g)et fpregs.* failed: no such process`, // OOM kill
+ `panic: ptrace (s|g)et regs.* failed: no such process`, // OOM kill
+ "panic: error initializing first thread: resource temporarily unavailable", // PID exhaustion
+ "panic: unable to activate mm: creating stub process: resource temporarily unavailable", // PID exhaustion
+ "panic: executor failed: pthread_create failed", // PID exhaustion
"panic: failed to start executor binary",
- "panic: executor failed: pthread_create failed",
"panic: error mapping run data: error mapping runData: cannot allocate memory",
+ "race: limit on 8128 simultaneously alive goroutines is exceeded, dying",
"ERROR: ThreadSanitizer", // Go race failing due to OOM.
"FATAL: ThreadSanitizer",
}
diff --git a/pkg/report/linux.go b/pkg/report/linux.go
index 7334d6ecf..16c71af74 100644
--- a/pkg/report/linux.go
+++ b/pkg/report/linux.go
@@ -705,6 +705,7 @@ var linuxStackParams = &stackParams{
"mutex_lock",
"mutex_trylock",
"mutex_unlock",
+ "mutex_remove_waiter",
"osq_lock",
"osq_unlock",
"__wake_up",
@@ -758,6 +759,18 @@ var linuxStackParams = &stackParams{
"program_check_exception",
"program_check_common",
"del_timer_sync",
+ "flush_work",
+ "__cancel_work_timer",
+ "cancel_work_sync",
+ "flush_workqueue",
+ "drain_workqueue",
+ "destroy_workqueue",
+ "get_device_parent",
+ "device_add",
+ "finish_wait",
+ "rollback_registered",
+ "unregister_netdev",
+ "usb_kill_urb",
},
corruptedLines: []*regexp.Regexp{
// Fault injection stacks are frequently intermixed with crash reports.
@@ -1018,11 +1031,12 @@ var linuxOopses = []*oops{
[]byte("WARNING:"),
[]oopsFormat{
{
- title: compile("WARNING: .*lib/debugobjects\\.c.* debug_print_object"),
+ title: compile("WARNING: .*lib/debugobjects\\.c.* (?:debug_print|debug_check)"),
fmt: "WARNING: ODEBUG bug in %[1]v",
// Skip all users of ODEBUG as well.
stack: warningStackFmt("debug_", "rcu", "hrtimer_", "timer_",
- "work_", "percpu_", "kmem_", "slab_", "kfree", "vunmap", "vfree"),
+ "work_", "percpu_", "kmem_", "slab_", "kfree", "vunmap",
+ "vfree", "__free_", "debug_check"),
},
{
title: compile("WARNING: .*mm/usercopy\\.c.* usercopy_warn"),
@@ -1042,7 +1056,7 @@ var linuxOopses = []*oops{
{
title: compile("WARNING: .*lib/refcount\\.c.* refcount_"),
fmt: "WARNING: refcount bug in %[1]v",
- stack: warningStackFmt("refcount"),
+ stack: warningStackFmt("refcount", "kobject_"),
},
{
title: compile("WARNING: .*kernel/locking/lockdep\\.c.*lock_"),
diff --git a/pkg/report/openbsd.go b/pkg/report/openbsd.go
index 0182b344a..7fcb8db36 100644
--- a/pkg/report/openbsd.go
+++ b/pkg/report/openbsd.go
@@ -184,6 +184,10 @@ var openbsdOopses = []*oops{
fmt: "witness: thread exiting with locks held",
},
{
+ title: compile("witness: userret: returning with the following locks held:(.*\\n)+?.*sys_([a-z0-9_]+)\\+"),
+ fmt: "witness: userret: %[2]v",
+ },
+ {
title: compile("(witness: .*)"),
fmt: "%[1]v",
},
diff --git a/pkg/report/testdata/gvisor/report/24 b/pkg/report/testdata/gvisor/report/24
new file mode 100644
index 000000000..2f83894a9
--- /dev/null
+++ b/pkg/report/testdata/gvisor/report/24
@@ -0,0 +1,13 @@
+TITLE: panic: unable to activate mm: creating stub process: resource temporarily unavailable
+SUPPRESSED: Y
+
+panic: unable to activate mm: creating stub process: resource temporarily unavailable
+
+goroutine 442298 [running]:
+gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Activate(0xc001b48000)
+ pkg/sentry/kernel/task_usermem.go:34 +0xc7
+gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).run(0xc001b48000, 0x1671)
+ pkg/sentry/kernel/task_run.go:67 +0x15c
+created by gvisor.dev/gvisor/pkg/sentry/kernel.(*Task).Start
+ pkg/sentry/kernel/task_start.go:299 +0xfe
+
diff --git a/pkg/report/testdata/linux/report/215 b/pkg/report/testdata/linux/report/215
index ffe9c3f73..0dd634d7f 100644
--- a/pkg/report/testdata/linux/report/215
+++ b/pkg/report/testdata/linux/report/215
@@ -1,4 +1,4 @@
-TITLE: general protection fault in drain_workqueue
+TITLE: general protection fault in ucma_close
[ 52.099632] kasan: GPF could be caused by NULL-ptr deref or user memory access
[ 52.106982] general protection fault: 0000 [#1] SMP KASAN
diff --git a/pkg/report/testdata/linux/report/351 b/pkg/report/testdata/linux/report/351
index e7051bdc0..8307e2ae9 100644
--- a/pkg/report/testdata/linux/report/351
+++ b/pkg/report/testdata/linux/report/351
@@ -1,4 +1,4 @@
-TITLE: INFO: trying to register non-static key in __flush_work
+TITLE: INFO: trying to register non-static key in vkms_atomic_crtc_destroy_state
[ 309.975408][T12234] INFO: trying to register non-static key.
[ 309.981253][T12234] the code is fine but needs lockdep annotation.
diff --git a/pkg/report/testdata/linux/report/399 b/pkg/report/testdata/linux/report/399
new file mode 100644
index 000000000..744c8b0b0
--- /dev/null
+++ b/pkg/report/testdata/linux/report/399
@@ -0,0 +1,66 @@
+TITLE: WARNING in em28xx_usb_disconnect
+
+[ 31.912260][ T21] ------------[ cut here ]------------
+[ 31.917870][ T21] WARNING: CPU: 1 PID: 21 at kernel/workqueue.c:3031 __flush_work.cold+0x2c/0x36
+[ 31.927362][ T21] Kernel panic - not syncing: panic_on_warn set ...
+[ 31.934264][ T21] CPU: 1 PID: 21 Comm: kworker/1:1 Not tainted 5.3.0-rc2+ #25
+[ 31.942018][ T21] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 31.952079][ T21] Workqueue: usb_hub_wq hub_event
+[ 31.957276][ T21] Call Trace:
+[ 31.960620][ T21] dump_stack+0xca/0x13e
+[ 31.965111][ T21] ? alloc_unbound_pwq.cold+0x40/0x6a
+[ 31.971638][ T21] panic+0x2a3/0x6da
+[ 31.975732][ T21] ? add_taint.cold+0x16/0x16
+[ 31.980486][ T21] ? __probe_kernel_read+0x188/0x1d0
+[ 31.985780][ T21] ? __warn.cold+0x5/0x4a
+[ 31.990110][ T21] ? __warn+0xe3/0x1e0
+[ 31.994260][ T21] ? __flush_work.cold+0x2c/0x36
+[ 31.999595][ T21] __warn.cold+0x20/0x4a
+[ 32.003835][ T21] ? __flush_work.cold+0x2c/0x36
+[ 32.008987][ T21] report_bug+0x262/0x2a0
+[ 32.013304][ T21] do_error_trap+0x12b/0x1e0
+[ 32.017879][ T21] ? __flush_work.cold+0x2c/0x36
+[ 32.022948][ T21] do_invalid_op+0x32/0x40
+[ 32.027646][ T21] ? __flush_work.cold+0x2c/0x36
+[ 32.032661][ T21] invalid_op+0x23/0x30
+[ 32.037069][ T21] RIP: 0010:__flush_work.cold+0x2c/0x36
+[ 32.042687][ T21] Code: 9a 22 00 48 c7 c7 20 e4 c5 85 e8 d9 3a 0d 00 0f 0b 45 31 e4 e9 98 86 ff ff e8 51 9a 22 00 48 c7 c7 20 e4 c5 85 e8 be 3a 0d 00 <0f> 0b 45 31 e4 e9 7d 86 ff ff e8 36 9a 22 00 48 c7 c7 20 e4 c5 85
+[ 32.066233][ T21] RSP: 0018:ffff8881da2f7720 EFLAGS: 00010286
+[ 32.072615][ T21] RAX: 0000000000000024 RBX: dffffc0000000000 RCX: 0000000000000000
+[ 32.081158][ T21] RDX: 0000000000000000 RSI: ffffffff8128a0fd RDI: ffffed103b45eed6
+[ 32.090281][ T21] RBP: ffff8881da2f7888 R08: 0000000000000024 R09: fffffbfff11acd9a
+[ 32.100441][ T21] R10: fffffbfff11acd99 R11: ffffffff88d66ccf R12: 0000000000000000
+[ 32.109253][ T21] R13: 0000000000000001 R14: ffff8881d2e99df8 R15: ffff8881d2d61b78
+[ 32.117896][ T21] ? vprintk_func+0x7d/0x113
+[ 32.122925][ T21] ? wq_update_unbound_numa+0x710/0x710
+[ 32.128901][ T21] ? __dev_printk+0x1db/0x203
+[ 32.133677][ T21] ? _dev_info+0xd7/0x109
+[ 32.138711][ T21] ? _dev_notice+0x109/0x109
+[ 32.143931][ T21] ? lockdep_hardirqs_on+0x379/0x580
+[ 32.149820][ T21] ? usb_hcd_flush_endpoint+0x14c/0x2d0
+[ 32.155978][ T21] ? usb_disable_endpoint+0x1ba/0x1f0
+[ 32.161459][ T21] em28xx_usb_disconnect.cold+0x280/0x2a6
+[ 32.170214][ T21] usb_unbind_interface+0x1bd/0x8a0
+[ 32.177191][ T21] ? usb_autoresume_device+0x60/0x60
+[ 32.182587][ T21] device_release_driver_internal+0x404/0x4c0
+[ 32.188714][ T21] bus_remove_device+0x2dc/0x4a0
+[ 32.195974][ T21] device_del+0x420/0xb10
+[ 32.200916][ T21] ? __device_links_no_driver+0x240/0x240
+[ 32.207857][ T21] ? usb_remove_ep_devs+0x3e/0x80
+[ 32.213675][ T21] ? remove_intf_ep_devs+0x13f/0x1d0
+[ 32.220341][ T21] usb_disable_device+0x211/0x690
+[ 32.225687][ T21] usb_disconnect+0x284/0x8d0
+[ 32.230774][ T21] hub_event+0x1454/0x3640
+[ 32.235406][ T21] ? find_held_lock+0x2d/0x110
+[ 32.240229][ T21] ? mark_held_locks+0xe0/0xe0
+[ 32.245957][ T21] ? hub_port_debounce+0x260/0x260
+[ 32.252587][ T21] process_one_work+0x92b/0x1530
+[ 32.257632][ T21] ? pwq_dec_nr_in_flight+0x310/0x310
+[ 32.263522][ T21] ? do_raw_spin_lock+0x11a/0x280
+[ 32.269121][ T21] worker_thread+0x7ab/0xe20
+[ 32.276466][ T21] ? process_one_work+0x1530/0x1530
+[ 32.282107][ T21] kthread+0x318/0x420
+[ 32.286548][ T21] ? kthread_create_on_node+0xf0/0xf0
+[ 32.292243][ T21] ret_from_fork+0x24/0x30
+[ 32.297457][ T21] Kernel Offset: disabled
+[ 32.302033][ T21] Rebooting in 86400 seconds..
diff --git a/pkg/report/testdata/linux/report/400 b/pkg/report/testdata/linux/report/400
new file mode 100644
index 000000000..7d8ee796d
--- /dev/null
+++ b/pkg/report/testdata/linux/report/400
@@ -0,0 +1,43 @@
+TITLE: WARNING in blk_sync_queue
+
+WARNING: CPU: 1 PID: 3214 at kernel/workqueue.c:2911 __flush_work+0x740/0x880 kernel/workqueue.c:2911
+Kernel panic - not syncing: panic_on_warn set ...
+
+CPU: 1 PID: 3214 Comm: kworker/1:2 Not tainted 4.19.38 #6
+Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+Workqueue: md_misc mddev_delayed_delete
+Call Trace:
+ __dump_stack lib/dump_stack.c:77 [inline]
+ dump_stack+0x172/0x1f0 lib/dump_stack.c:113
+ panic+0x263/0x51d kernel/panic.c:185
+ __warn.cold+0x20/0x54 kernel/panic.c:540
+ report_bug+0x263/0x2b0 lib/bug.c:186
+ fixup_bug arch/x86/kernel/traps.c:178 [inline]
+ fixup_bug arch/x86/kernel/traps.c:173 [inline]
+ do_error_trap+0x204/0x360 arch/x86/kernel/traps.c:296
+ do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:316
+ invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:997
+RIP: 0010:__flush_work+0x740/0x880 kernel/workqueue.c:2911
+Code: 74 58 e8 63 59 25 00 fb 66 0f 1f 44 00 00 45 31 e4 e9 86 fd ff ff e8 4f 59 25 00 0f 0b 45 31 e4 e9 77 fd ff ff e8 40 59 25 00 <0f> 0b 45 31 e4 e9 68 fd ff ff e8 31 59 25 00 4c 89 ff 45 31 e4 e8
+RSP: 0018:ffff88809bc3f990 EFLAGS: 00010293
+RAX: ffff88809bc10640 RBX: dffffc0000000000 RCX: ffffffff8146100b
+RDX: 0000000000000000 RSI: ffffffff814616b0 RDI: 0000000000000001
+RBP: ffff88809bc3faf8 R08: ffff88809bc10640 R09: ffff88809bc10f08
+R10: 0000000000000000 R11: 0000000000000000 R12: ffff88809aca8690
+R13: ffff88809bc3fad0 R14: 0000000000000001 R15: 0000000000000001
+ __cancel_work_timer+0x3bf/0x520 kernel/workqueue.c:3007
+ cancel_work_sync+0x18/0x20 kernel/workqueue.c:3043
+ blk_sync_queue+0x33/0x1c0 block/blk-core.c:408
+ blk_cleanup_queue+0x404/0x720 block/blk-core.c:807
+ md_free+0xcb/0x1b0 drivers/md/md.c:5223
+ kobject_cleanup lib/kobject.c:662 [inline]
+ kobject_release lib/kobject.c:691 [inline]
+ kref_put include/linux/kref.h:70 [inline]
+ kobject_put.cold+0x28f/0x2ec lib/kobject.c:708
+ mddev_delayed_delete+0x34/0x40 drivers/md/md.c:5251
+ process_one_work+0x98e/0x1760 kernel/workqueue.c:2153
+ worker_thread+0x98/0xe40 kernel/workqueue.c:2296
+ kthread+0x357/0x430 kernel/kthread.c:246
+ ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:413
+Kernel Offset: disabled
+Rebooting in 86400 seconds..
diff --git a/pkg/report/testdata/linux/report/401 b/pkg/report/testdata/linux/report/401
new file mode 100644
index 000000000..11c5242d1
--- /dev/null
+++ b/pkg/report/testdata/linux/report/401
@@ -0,0 +1,99 @@
+TITLE: KMSAN: kernel-usb-infoleak in ttusb_dec_send_command
+
+[ 77.965881][ T49] ==================================================================
+[ 77.974025][ T49] BUG: KMSAN: kernel-usb-infoleak in usb_submit_urb+0x7ec/0x1fa0
+[ 77.981755][ T49] CPU: 1 PID: 49 Comm: kworker/1:1 Not tainted 5.1.0+ #1
+[ 77.988770][ T49] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 77.998818][ T49] Workqueue: usb_hub_wq hub_event
+[ 78.003821][ T49] Call Trace:
+[ 78.007147][ T49] dump_stack+0x191/0x1f0
+[ 78.011468][ T49] kmsan_report+0x162/0x2d0
+[ 78.015969][ T49] kmsan_internal_check_memory+0x974/0xa80
+[ 78.021758][ T49] ? hub_event+0x48d1/0x7290
+[ 78.026329][ T49] ? process_one_work+0x1572/0x1f00
+[ 78.031503][ T49] ? worker_thread+0x111b/0x2460
+[ 78.036422][ T49] ? kthread+0x4b5/0x4f0
+[ 78.040655][ T49] ? kmsan_get_shadow_origin_ptr+0x71/0x470
+[ 78.046533][ T49] kmsan_handle_urb+0x28/0x40
+[ 78.051196][ T49] usb_submit_urb+0x7ec/0x1fa0
+[ 78.055960][ T49] usb_start_wait_urb+0x143/0x410
+[ 78.060976][ T49] usb_bulk_msg+0x811/0x920
+[ 78.065477][ T49] ttusb_dec_send_command+0x47d/0xd50
+[ 78.070836][ T49] ttusb_dec_probe+0xe31/0x4e00
+[ 78.075682][ T49] ? __pm_runtime_set_status+0xf5e/0x1400
+[ 78.081392][ T49] ? kmsan_get_shadow_origin_ptr+0x71/0x470
+[ 78.087299][ T49] ? saa7134_go7007_s_std+0x30/0x30
+[ 78.092495][ T49] ? saa7134_go7007_s_std+0x30/0x30
+[ 78.097681][ T49] usb_probe_interface+0xd66/0x1320
+[ 78.102872][ T49] ? usb_register_driver+0x7d0/0x7d0
+[ 78.108138][ T49] really_probe+0xdae/0x1d80
+[ 78.112712][ T49] driver_probe_device+0x1b3/0x4f0
+[ 78.117808][ T49] __device_attach_driver+0x5b8/0x790
+[ 78.123172][ T49] bus_for_each_drv+0x28e/0x3b0
+[ 78.128002][ T49] ? deferred_probe_work_func+0x400/0x400
+[ 78.133705][ T49] __device_attach+0x454/0x730
+[ 78.138462][ T49] device_initial_probe+0x4a/0x60
+[ 78.143478][ T49] bus_probe_device+0x137/0x390
+[ 78.148332][ T49] device_add+0x288d/0x30e0
+[ 78.153592][ T49] usb_set_configuration+0x30dc/0x3750
+[ 78.159054][ T49] generic_probe+0xe7/0x280
+[ 78.163546][ T49] ? usb_choose_configuration+0xae0/0xae0
+[ 78.169252][ T49] usb_probe_device+0x14c/0x200
+[ 78.174111][ T49] ? usb_register_device_driver+0x470/0x470
+[ 78.179996][ T49] really_probe+0xdae/0x1d80
+[ 78.184622][ T49] driver_probe_device+0x1b3/0x4f0
+[ 78.189723][ T49] __device_attach_driver+0x5b8/0x790
+[ 78.195082][ T49] bus_for_each_drv+0x28e/0x3b0
+[ 78.199913][ T49] ? deferred_probe_work_func+0x400/0x400
+[ 78.205614][ T49] __device_attach+0x454/0x730
+[ 78.210360][ T49] device_initial_probe+0x4a/0x60
+[ 78.215363][ T49] bus_probe_device+0x137/0x390
+[ 78.220196][ T49] device_add+0x288d/0x30e0
+[ 78.224706][ T49] usb_new_device+0x23e5/0x2ff0
+[ 78.229550][ T49] hub_event+0x48d1/0x7290
+[ 78.233980][ T49] ? kmsan_get_shadow_origin_ptr+0x71/0x470
+[ 78.239850][ T49] ? led_work+0x720/0x720
+[ 78.244157][ T49] ? led_work+0x720/0x720
+[ 78.248472][ T49] process_one_work+0x1572/0x1f00
+[ 78.253491][ T49] worker_thread+0x111b/0x2460
+[ 78.258346][ T49] kthread+0x4b5/0x4f0
+[ 78.262397][ T49] ? process_one_work+0x1f00/0x1f00
+[ 78.267580][ T49] ? kthread_blkcg+0xf0/0xf0
+[ 78.272166][ T49] ret_from_fork+0x35/0x40
+[ 78.276566][ T49]
+[ 78.278872][ T49] Uninit was created at:
+[ 78.283099][ T49] kmsan_internal_poison_shadow+0x92/0x150
+[ 78.288881][ T49] kmsan_kmalloc+0xa4/0x130
+[ 78.293364][ T49] kmem_cache_alloc_trace+0x503/0xae0
+[ 78.298712][ T49] ttusb_dec_send_command+0x155/0xd50
+[ 78.304063][ T49] ttusb_dec_probe+0xe31/0x4e00
+[ 78.308909][ T49] usb_probe_interface+0xd66/0x1320
+[ 78.314088][ T49] really_probe+0xdae/0x1d80
+[ 78.318654][ T49] driver_probe_device+0x1b3/0x4f0
+[ 78.323762][ T49] __device_attach_driver+0x5b8/0x790
+[ 78.329115][ T49] bus_for_each_drv+0x28e/0x3b0
+[ 78.333941][ T49] __device_attach+0x454/0x730
+[ 78.338682][ T49] device_initial_probe+0x4a/0x60
+[ 78.343682][ T49] bus_probe_device+0x137/0x390
+[ 78.348508][ T49] device_add+0x288d/0x30e0
+[ 78.353019][ T49] usb_set_configuration+0x30dc/0x3750
+[ 78.358554][ T49] generic_probe+0xe7/0x280
+[ 78.363047][ T49] usb_probe_device+0x14c/0x200
+[ 78.367870][ T49] really_probe+0xdae/0x1d80
+[ 78.372538][ T49] driver_probe_device+0x1b3/0x4f0
+[ 78.377630][ T49] __device_attach_driver+0x5b8/0x790
+[ 78.382979][ T49] bus_for_each_drv+0x28e/0x3b0
+[ 78.387807][ T49] __device_attach+0x454/0x730
+[ 78.392558][ T49] device_initial_probe+0x4a/0x60
+[ 78.397566][ T49] bus_probe_device+0x137/0x390
+[ 78.402401][ T49] device_add+0x288d/0x30e0
+[ 78.406884][ T49] usb_new_device+0x23e5/0x2ff0
+[ 78.411737][ T49] hub_event+0x48d1/0x7290
+[ 78.416138][ T49] process_one_work+0x1572/0x1f00
+[ 78.421144][ T49] worker_thread+0x111b/0x2460
+[ 78.425889][ T49] kthread+0x4b5/0x4f0
+[ 78.429936][ T49] ret_from_fork+0x35/0x40
+[ 78.434329][ T49]
+[ 78.436634][ T49] Bytes 4-63 of 64 are uninitialized
+[ 78.441891][ T49] Memory access of size 64 starts at ffff888106214540
+[ 78.448625][ T49] ==================================================================
diff --git a/pkg/report/testdata/linux/report/402 b/pkg/report/testdata/linux/report/402
new file mode 100644
index 000000000..bfc09fdfc
--- /dev/null
+++ b/pkg/report/testdata/linux/report/402
@@ -0,0 +1,100 @@
+TITLE: KMSAN: kernel-usb-infoleak in pcan_usb_pro_send_req
+
+[ 321.531266][ T457] ==================================================================
+[ 321.539455][ T457] BUG: KMSAN: kernel-usb-infoleak in usb_submit_urb+0x7ec/0x1fa0
+[ 321.547172][ T457] CPU: 1 PID: 457 Comm: kworker/1:1 Not tainted 5.1.0+ #1
+[ 321.554274][ T457] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 321.564436][ T457] Workqueue: usb_hub_wq hub_event
+[ 321.569463][ T457] Call Trace:
+[ 321.572954][ T457] dump_stack+0x191/0x1f0
+[ 321.577296][ T457] kmsan_report+0x162/0x2d0
+[ 321.581835][ T457] kmsan_internal_check_memory+0x974/0xa80
+[ 321.587746][ T457] ? device_add+0x288d/0x30e0
+[ 321.592452][ T457] ? usb_new_device+0x23e5/0x2ff0
+[ 321.597486][ T457] ? hub_event+0x48d1/0x7290
+[ 321.602130][ T457] ? process_one_work+0x1572/0x1f00
+[ 321.607392][ T457] ? kthread+0x4b5/0x4f0
+[ 321.611641][ T457] ? ret_from_fork+0x35/0x40
+[ 321.616308][ T457] ? kmsan_get_shadow_origin_ptr+0x71/0x470
+[ 321.622234][ T457] kmsan_handle_urb+0x28/0x40
+[ 321.626936][ T457] usb_submit_urb+0x7ec/0x1fa0
+[ 321.631724][ T457] usb_start_wait_urb+0x143/0x410
+[ 321.636778][ T457] usb_control_msg+0x49f/0x7f0
+[ 321.641690][ T457] pcan_usb_pro_send_req+0x26b/0x3e0
+[ 321.647009][ T457] pcan_usb_fd_init+0x16ee/0x1900
+[ 321.652061][ T457] ? pcan_usb_pro_set_ts+0x490/0x490
+[ 321.657344][ T457] peak_usb_probe+0x1411/0x1b10
+[ 321.662231][ T457] ? peak_usb_do_device_exit+0x240/0x240
+[ 321.667885][ T457] usb_probe_interface+0xd66/0x1320
+[ 321.673102][ T457] ? usb_register_driver+0x7d0/0x7d0
+[ 321.678437][ T457] really_probe+0xdae/0x1d80
+[ 321.683071][ T457] driver_probe_device+0x1b3/0x4f0
+[ 321.688226][ T457] __device_attach_driver+0x5b8/0x790
+[ 321.693632][ T457] bus_for_each_drv+0x28e/0x3b0
+[ 321.698499][ T457] ? deferred_probe_work_func+0x400/0x400
+[ 321.704239][ T457] __device_attach+0x454/0x730
+[ 321.709009][ T457] device_initial_probe+0x4a/0x60
+[ 321.714029][ T457] bus_probe_device+0x137/0x390
+[ 321.718886][ T457] device_add+0x288d/0x30e0
+[ 321.723449][ T457] usb_set_configuration+0x30dc/0x3750
+[ 321.729142][ T457] generic_probe+0xe7/0x280
+[ 321.733673][ T457] ? usb_choose_configuration+0xae0/0xae0
+[ 321.739430][ T457] usb_probe_device+0x14c/0x200
+[ 321.744312][ T457] ? usb_register_device_driver+0x470/0x470
+[ 321.750208][ T457] really_probe+0xdae/0x1d80
+[ 321.756129][ T457] driver_probe_device+0x1b3/0x4f0
+[ 321.761248][ T457] __device_attach_driver+0x5b8/0x790
+[ 321.766650][ T457] bus_for_each_drv+0x28e/0x3b0
+[ 321.771518][ T457] ? deferred_probe_work_func+0x400/0x400
+[ 321.777245][ T457] __device_attach+0x454/0x730
+[ 321.782028][ T457] device_initial_probe+0x4a/0x60
+[ 321.787062][ T457] bus_probe_device+0x137/0x390
+[ 321.791926][ T457] device_add+0x288d/0x30e0
+[ 321.796493][ T457] usb_new_device+0x23e5/0x2ff0
+[ 321.801391][ T457] hub_event+0x48d1/0x7290
+[ 321.805922][ T457] ? kmsan_get_shadow_origin_ptr+0x71/0x470
+[ 321.811841][ T457] ? led_work+0x720/0x720
+[ 321.816185][ T457] ? led_work+0x720/0x720
+[ 321.820516][ T457] process_one_work+0x1572/0x1f00
+[ 321.825557][ T457] worker_thread+0x111b/0x2460
+[ 321.830341][ T457] kthread+0x4b5/0x4f0
+[ 321.834414][ T457] ? process_one_work+0x1f00/0x1f00
+[ 321.839621][ T457] ? kthread_blkcg+0xf0/0xf0
+[ 321.844224][ T457] ret_from_fork+0x35/0x40
+[ 321.848661][ T457]
+[ 321.850974][ T457] Uninit was created at:
+[ 321.855209][ T457] kmsan_internal_poison_shadow+0x92/0x150
+[ 321.861001][ T457] kmsan_kmalloc+0xa4/0x130
+[ 321.865501][ T457] kmem_cache_alloc_trace+0x503/0xae0
+[ 321.870872][ T457] pcan_usb_fd_init+0x446/0x1900
+[ 321.875797][ T457] peak_usb_probe+0x1411/0x1b10
+[ 321.880654][ T457] usb_probe_interface+0xd66/0x1320
+[ 321.885862][ T457] really_probe+0xdae/0x1d80
+[ 321.890468][ T457] driver_probe_device+0x1b3/0x4f0
+[ 321.895600][ T457] __device_attach_driver+0x5b8/0x790
+[ 321.900971][ T457] bus_for_each_drv+0x28e/0x3b0
+[ 321.905833][ T457] __device_attach+0x454/0x730
+[ 321.910582][ T457] device_initial_probe+0x4a/0x60
+[ 321.915600][ T457] bus_probe_device+0x137/0x390
+[ 321.920482][ T457] device_add+0x288d/0x30e0
+[ 321.924974][ T457] usb_set_configuration+0x30dc/0x3750
+[ 321.930420][ T457] generic_probe+0xe7/0x280
+[ 321.934931][ T457] usb_probe_device+0x14c/0x200
+[ 321.939793][ T457] really_probe+0xdae/0x1d80
+[ 321.944374][ T457] driver_probe_device+0x1b3/0x4f0
+[ 321.949482][ T457] __device_attach_driver+0x5b8/0x790
+[ 321.963786][ T457] bus_for_each_drv+0x28e/0x3b0
+[ 321.968647][ T457] __device_attach+0x454/0x730
+[ 321.973409][ T457] device_initial_probe+0x4a/0x60
+[ 321.978447][ T457] bus_probe_device+0x137/0x390
+[ 321.983307][ T457] device_add+0x288d/0x30e0
+[ 321.987833][ T457] usb_new_device+0x23e5/0x2ff0
+[ 321.993243][ T457] hub_event+0x48d1/0x7290
+[ 321.997667][ T457] process_one_work+0x1572/0x1f00
+[ 322.002696][ T457] worker_thread+0x111b/0x2460
+[ 322.007464][ T457] kthread+0x4b5/0x4f0
+[ 322.011521][ T457] ret_from_fork+0x35/0x40
+[ 322.015927][ T457]
+[ 322.018266][ T457] Bytes 2-15 of 16 are uninitialized
+[ 322.023559][ T457] Memory access of size 16 starts at ffff88803afb7000
+[ 322.030313][ T457] ==================================================================
diff --git a/pkg/report/testdata/linux/report/403 b/pkg/report/testdata/linux/report/403
new file mode 100644
index 000000000..dba6dfede
--- /dev/null
+++ b/pkg/report/testdata/linux/report/403
@@ -0,0 +1,47 @@
+TITLE: BUG: MAX_STACK_TRACE_ENTRIES too low!
+
+[ 185.416858][ T809] BUG: MAX_STACK_TRACE_ENTRIES too low!
+[ 185.422408][ T809] turning off the locking correctness validator.
+[ 185.428702][ T809] CPU: 1 PID: 809 Comm: syz-executor986 Not tainted 5.1.0-rc2+ #44
+[ 185.436697][ T809] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 185.446719][ T809] Call Trace:
+[ 185.449986][ T809] dump_stack+0x172/0x1f0
+[ 185.454359][ T809] save_trace.cold+0x14/0x19
+[ 185.458944][ T809] mark_lock+0x2fb/0x1380
+[ 185.463242][ T809] ? is_bpf_text_address+0xac/0x170
+[ 185.468401][ T809] ? print_shortest_lock_dependencies+0x90/0x90
+[ 185.474608][ T809] __lock_acquire+0x1317/0x3fb0
+[ 185.479423][ T809] ? lock_downgrade+0x880/0x880
+[ 185.484239][ T809] ? __sanitizer_cov_trace_const_cmp4+0x16/0x20
+[ 185.490438][ T809] ? is_dynamic_key+0x1c0/0x1c0
+[ 185.495251][ T809] ? mark_held_locks+0xf0/0xf0
+[ 185.499975][ T809] ? __lock_acquire+0x548/0x3fb0
+[ 185.504875][ T809] ? __kernel_text_address+0xd/0x40
+[ 185.510033][ T809] ? unwind_get_return_address+0x61/0xa0
+[ 185.515627][ T809] lock_acquire+0x16f/0x3f0
+[ 185.520095][ T809] ? flush_workqueue+0xf7/0x14c0
+[ 185.525009][ T809] flush_workqueue+0x126/0x14c0
+[ 185.529824][ T809] ? flush_workqueue+0xf7/0x14c0
+[ 185.534722][ T809] ? lock_downgrade+0x880/0x880
+[ 185.539537][ T809] ? pwq_unbound_release_workfn+0x2f0/0x2f0
+[ 185.545395][ T809] ? wait_for_completion+0x440/0x440
+[ 185.550686][ T809] ? mutex_trylock+0x1e0/0x1e0
+[ 185.555425][ T809] ? ucma_free_ctx+0xb90/0xb90
+[ 185.560165][ T809] drain_workqueue+0x1b4/0x470
+[ 185.564900][ T809] ? drain_workqueue+0x1b4/0x470
+[ 185.569804][ T809] ? fsnotify+0x811/0xbc0
+[ 185.574102][ T809] ? ucma_free_ctx+0xb90/0xb90
+[ 185.578862][ T809] destroy_workqueue+0x21/0x700
+[ 185.583692][ T809] ? ucma_free_ctx+0xb90/0xb90
+[ 185.588414][ T809] ucma_close+0x289/0x320
+[ 185.592706][ T809] ? __might_sleep+0x95/0x190
+[ 185.597343][ T809] ? ucma_free_ctx+0xb90/0xb90
+[ 185.602069][ T809] __fput+0x2e5/0x8d0
+[ 185.606015][ T809] ____fput+0x16/0x20
+[ 185.609956][ T809] task_work_run+0x14a/0x1c0
+[ 185.614530][ T809] exit_to_usermode_loop+0x273/0x2c0
+[ 185.619778][ T809] do_syscall_64+0x52d/0x610
+[ 185.624342][ T809] entry_SYSCALL_64_after_hwframe+0x49/0xbe
+[ 185.630195][ T809] RIP: 0033:0x400ef0
+[ 185.634068][ T809] Code: 01 f0 ff ff 0f 83 20 0c 00 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 83 3d dd 17 2d 00 00 75 14 b8 03 00 00 00 0f 05 <48> 3d 01 f0 ff ff 0f 83 f4 0b 00 00 c3 48 83 ec 08 e8 5a 01 00 00
+[ 185.653672][ T809] RSP: 002b:00007ffecc78cbb8 EFLAGS: 00000246 ORIG_RAX: 0000000000000003
diff --git a/pkg/report/testdata/linux/report/404 b/pkg/report/testdata/linux/report/404
new file mode 100644
index 000000000..ce9621f9c
--- /dev/null
+++ b/pkg/report/testdata/linux/report/404
@@ -0,0 +1,55 @@
+TITLE: BUG: MAX_STACK_TRACE_ENTRIES too low!
+
+[ 3167.402179][T32668] BUG: MAX_STACK_TRACE_ENTRIES too low!
+[ 3167.407738][T32668] turning off the locking correctness validator.
+[ 3167.414046][T32668] CPU: 1 PID: 32668 Comm: kworker/1:1 Not tainted 5.2.0-rc6+ #15
+[ 3167.421733][T32668] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 3167.431773][T32668] Workqueue: usb_hub_wq hub_event
+[ 3167.436772][T32668] Call Trace:
+[ 3167.440048][T32668] dump_stack+0xca/0x13e
+[ 3167.444285][T32668] save_trace.isra.0.cold+0x11/0x19
+[ 3167.449472][T32668] mark_lock+0x2b9/0x10c0
+[ 3167.453779][T32668] ? print_shortest_lock_dependencies+0x80/0x80
+[ 3167.460005][T32668] __lock_acquire+0x54a/0x5340
+[ 3167.464743][T32668] ? __lock_acquire+0x54a/0x5340
+[ 3167.469659][T32668] ? find_held_lock+0x2d/0x110
+[ 3167.474399][T32668] ? __free_object+0xdd/0x1e0
+[ 3167.479050][T32668] ? mark_held_locks+0xe0/0xe0
+[ 3167.483785][T32668] ? mark_held_locks+0xe0/0xe0
+[ 3167.488526][T32668] ? _raw_spin_unlock_irqrestore+0x3e/0x50
+[ 3167.494305][T32668] ? lockdep_hardirqs_on+0x379/0x580
+[ 3167.499577][T32668] ? __lock_acquire+0x54a/0x5340
+[ 3167.504577][T32668] lock_acquire+0x100/0x2b0
+[ 3167.509055][T32668] ? flush_workqueue+0xf7/0x14c0
+[ 3167.513964][T32668] flush_workqueue+0x126/0x14c0
+[ 3167.518796][T32668] ? flush_workqueue+0xf7/0x14c0
+[ 3167.523705][T32668] ? mark_held_locks+0xe0/0xe0
+[ 3167.528449][T32668] ? __mutex_lock+0x3a2/0x12b0
+[ 3167.533185][T32668] ? find_held_lock+0x2d/0x110
+[ 3167.537923][T32668] ? __pm_runtime_resume+0x111/0x180
+[ 3167.543180][T32668] ? max_active_store+0x120/0x120
+[ 3167.548178][T32668] ? _raw_spin_unlock_irqrestore+0x3e/0x50
+[ 3167.553973][T32668] ? lockdep_hardirqs_on+0x379/0x580
+[ 3167.559232][T32668] ? scsi_remove_host+0x12d/0x360
+[ 3167.564229][T32668] scsi_remove_host+0x12d/0x360
+[ 3167.569055][T32668] usb_stor_disconnect+0x106/0x230
+[ 3167.574160][T32668] usb_unbind_interface+0x1bd/0x8a0
+[ 3167.579330][T32668] ? usb_autoresume_device+0x60/0x60
+[ 3167.584590][T32668] device_release_driver_internal+0x404/0x4c0
+[ 3167.590627][T32668] bus_remove_device+0x2dc/0x4a0
+[ 3167.595541][T32668] device_del+0x460/0xb80
+[ 3167.599845][T32668] ? __device_links_no_driver+0x240/0x240
+[ 3167.605539][T32668] ? usb_remove_ep_devs+0x3e/0x80
+[ 3167.610536][T32668] ? remove_intf_ep_devs+0x13f/0x1d0
+[ 3167.615794][T32668] usb_disable_device+0x211/0x690
+[ 3167.620795][T32668] usb_disconnect+0x284/0x830
+[ 3167.625457][T32668] hub_event+0x13bd/0x3550
+[ 3167.629848][T32668] ? hub_port_debounce+0x260/0x260
+[ 3167.634934][T32668] process_one_work+0x905/0x1570
+[ 3167.639851][T32668] ? pwq_dec_nr_in_flight+0x310/0x310
+[ 3167.645196][T32668] ? do_raw_spin_lock+0x11a/0x280
+[ 3167.650210][T32668] worker_thread+0x96/0xe20
+[ 3167.654704][T32668] ? process_one_work+0x1570/0x1570
+[ 3167.659881][T32668] kthread+0x30b/0x410
+[ 3167.663925][T32668] ? kthread_park+0x1a0/0x1a0
+[ 3167.668574][T32668] ret_from_fork+0x24/0x30
diff --git a/pkg/report/testdata/linux/report/405 b/pkg/report/testdata/linux/report/405
new file mode 100644
index 000000000..e36dfcfd6
--- /dev/null
+++ b/pkg/report/testdata/linux/report/405
@@ -0,0 +1,73 @@
+TITLE: WARNING: refcount bug in cdev_get
+
+[ 1191.409330][ T6711] ------------[ cut here ]------------
+[ 1191.414962][ T6711] refcount_t: increment on 0; use-after-free.
+[ 1191.421477][ T6711] WARNING: CPU: 1 PID: 6711 at lib/refcount.c:156 refcount_inc_checked+0x59/0x60
+[ 1191.430701][ T6711] Kernel panic - not syncing: panic_on_warn set ...
+[ 1191.437319][ T6711] CPU: 1 PID: 6711 Comm: syz-executor.0 Not tainted 5.3.0-rc2+ #25
+[ 1191.446758][ T6711] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 1191.456844][ T6711] Call Trace:
+[ 1191.460354][ T6711] dump_stack+0xca/0x13e
+[ 1191.464733][ T6711] ? refcount_inc_not_zero_checked+0x170/0x1e0
+[ 1191.470914][ T6711] panic+0x2a3/0x6da
+[ 1191.474838][ T6711] ? add_taint.cold+0x16/0x16
+[ 1191.479610][ T6711] ? __probe_kernel_read+0x188/0x1d0
+[ 1191.485106][ T6711] ? __warn.cold+0x5/0x4a
+[ 1191.489637][ T6711] ? __warn+0xe3/0x1e0
+[ 1191.493740][ T6711] ? refcount_inc_checked+0x59/0x60
+[ 1191.498954][ T6711] __warn.cold+0x20/0x4a
+[ 1191.503221][ T6711] ? refcount_inc_checked+0x59/0x60
+[ 1191.508433][ T6711] report_bug+0x262/0x2a0
+[ 1191.512960][ T6711] do_error_trap+0x12b/0x1e0
+[ 1191.517566][ T6711] ? refcount_inc_checked+0x59/0x60
+[ 1191.522782][ T6711] do_invalid_op+0x32/0x40
+[ 1191.527314][ T6711] ? refcount_inc_checked+0x59/0x60
+[ 1191.532585][ T6711] invalid_op+0x23/0x30
+[ 1191.536851][ T6711] RIP: 0010:refcount_inc_checked+0x59/0x60
+[ 1191.542859][ T6711] Code: 1d 78 8f a7 05 31 ff 89 de e8 53 49 5d ff 84 db 75 e0 e8 1a 48 5d ff 48 c7 c7 40 c1 da 85 c6 05 58 8f a7 05 01 e8 3c 19 33 ff <0f> 0b eb c4 90 90 90 41 57 41 56 41 55 49 89 fd 41 54 55 48 89 f5
+[ 1191.562935][ T6711] RSP: 0018:ffff8881c853f958 EFLAGS: 00010282
+[ 1191.569024][ T6711] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
+[ 1191.577101][ T6711] RDX: 0000000000000000 RSI: ffffffff8128a0fd RDI: ffffed10390a7f1d
+[ 1191.585205][ T6711] RBP: ffff8881d660b938 R08: ffff8881d55f9800 R09: fffffbfff11acd9c
+[ 1191.593190][ T6711] R10: fffffbfff11acd9b R11: ffffffff88d66cdf R12: ffff8881d660b900
+[ 1191.601180][ T6711] R13: 0000000000000000 R14: ffff8881ca2bbc20 R15: ffff8881c8a391fc
+[ 1191.609481][ T6711] ? vprintk_func+0x7d/0x113
+[ 1191.614095][ T6711] ? refcount_inc_checked+0x59/0x60
+[ 1191.619471][ T6711] kobject_get+0x62/0xc0
+[ 1191.623771][ T6711] cdev_get+0x5c/0xb0
+[ 1191.627873][ T6711] chrdev_open+0xaa/0x5c0
+[ 1191.632370][ T6711] ? rwlock_bug.part.0+0x90/0x90
+[ 1191.637480][ T6711] ? cdev_put.part.0+0x50/0x50
+[ 1191.642500][ T6711] do_dentry_open+0x494/0x1120
+[ 1191.647333][ T6711] ? cdev_put.part.0+0x50/0x50
+[ 1191.652114][ T6711] ? chmod_common+0x3c0/0x3c0
+[ 1191.656956][ T6711] ? inode_permission+0xbe/0x3a0
+[ 1191.661919][ T6711] path_openat+0x1430/0x3f50
+[ 1191.666573][ T6711] ? save_stack+0x1b/0x80
+[ 1191.670919][ T6711] ? do_sys_open+0x294/0x580
+[ 1191.675682][ T6711] ? do_syscall_64+0xb7/0x580
+[ 1191.680373][ T6711] ? path_lookupat.isra.0+0x8d0/0x8d0
+[ 1191.685760][ T6711] ? __lock_acquire+0x145e/0x3b50
+[ 1191.691048][ T6711] do_filp_open+0x1a1/0x280
+[ 1191.695649][ T6711] ? may_open_dev+0xf0/0xf0
+[ 1191.700186][ T6711] ? __alloc_fd+0x46d/0x600
+[ 1191.704706][ T6711] ? do_raw_spin_lock+0x11a/0x280
+[ 1191.709740][ T6711] ? do_raw_spin_unlock+0x50/0x220
+[ 1191.715066][ T6711] ? _raw_spin_unlock+0x1f/0x30
+[ 1191.719942][ T6711] ? __alloc_fd+0x46d/0x600
+[ 1191.724460][ T6711] do_sys_open+0x3c0/0x580
+[ 1191.728893][ T6711] ? filp_open+0x70/0x70
+[ 1191.733238][ T6711] ? __ia32_sys_clock_settime+0x260/0x260
+[ 1191.739119][ T6711] ? trace_hardirqs_off_caller+0x55/0x1e0
+[ 1191.744853][ T6711] do_syscall_64+0xb7/0x580
+[ 1191.749387][ T6711] entry_SYSCALL_64_after_hwframe+0x49/0xbe
+[ 1191.755550][ T6711] RIP: 0033:0x413711
+[ 1191.759460][ T6711] Code: 75 14 b8 02 00 00 00 0f 05 48 3d 01 f0 ff ff 0f 83 04 19 00 00 c3 48 83 ec 08 e8 0a fa ff ff 48 89 04 24 b8 02 00 00 00 0f 05 <48> 8b 3c 24 48 89 c2 e8 53 fa ff ff 48 89 d0 48 83 c4 08 48 3d 01
+[ 1191.779203][ T6711] RSP: 002b:00007fcd70ca27a0 EFLAGS: 00000293 ORIG_RAX: 0000000000000002
+[ 1191.787902][ T6711] RAX: ffffffffffffffda RBX: 6666666666666667 RCX: 0000000000413711
+[ 1191.795895][ T6711] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00007fcd70ca2850
+[ 1191.803887][ T6711] RBP: 000000000075bf20 R08: 000000000000000f R09: 0000000000000000
+[ 1191.812072][ T6711] R10: 0000000000000000 R11: 0000000000000293 R12: 00007fcd70ca36d4
+[ 1191.820263][ T6711] R13: 00000000004c8bc7 R14: 00000000004dfa58 R15: 00000000ffffffff
+[ 1191.829087][ T6711] Kernel Offset: disabled
+[ 1191.833487][ T6711] Rebooting in 86400 seconds..
diff --git a/pkg/report/testdata/linux/report/406 b/pkg/report/testdata/linux/report/406
new file mode 100644
index 000000000..ff7236ac7
--- /dev/null
+++ b/pkg/report/testdata/linux/report/406
@@ -0,0 +1,74 @@
+TITLE: WARNING: refcount bug in hci_register_dev
+
+[ 83.882482][T10363] ------------[ cut here ]------------
+[ 83.894883][T10363] refcount_t: increment on 0; use-after-free.
+[ 83.901740][T10363] WARNING: CPU: 0 PID: 10363 at lib/refcount.c:156 refcount_inc_checked+0x61/0x70
+[ 83.911146][T10363] Kernel panic - not syncing: panic_on_warn set ...
+[ 83.917719][T10363] CPU: 0 PID: 10363 Comm: syz-executor494 Not tainted 5.3.0-rc2+ #112
+[ 83.925858][T10363] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 83.936006][T10363] Call Trace:
+[ 83.939303][T10363] dump_stack+0x172/0x1f0
+[ 83.943651][T10363] ? refcount_inc_not_zero_checked+0x180/0x200
+[ 83.949907][T10363] panic+0x2dc/0x755
+[ 83.954073][T10363] ? add_taint.cold+0x16/0x16
+[ 83.958747][T10363] ? __kasan_check_write+0x14/0x20
+[ 83.963852][T10363] ? __warn.cold+0x5/0x4c
+[ 83.968333][T10363] ? __warn+0xe7/0x1e0
+[ 83.972417][T10363] ? refcount_inc_checked+0x61/0x70
+[ 83.977794][T10363] __warn.cold+0x20/0x4c
+[ 83.982051][T10363] ? refcount_inc_checked+0x61/0x70
+[ 83.987235][T10363] report_bug+0x263/0x2b0
+[ 83.991664][T10363] do_error_trap+0x11b/0x200
+[ 83.996328][T10363] do_invalid_op+0x37/0x50
+[ 84.000735][T10363] ? refcount_inc_checked+0x61/0x70
+[ 84.005920][T10363] invalid_op+0x23/0x30
+[ 84.010085][T10363] RIP: 0010:refcount_inc_checked+0x61/0x70
+[ 84.015875][T10363] Code: 1d 5e 90 64 06 31 ff 89 de e8 eb 99 35 fe 84 db 75 dd e8 a2 98 35 fe 48 c7 c7 80 03 c6 87 c6 05 3e 90 64 06 01 e8 57 05 07 fe <0f> 0b eb c1 90 90 90 90 90 90 90 90 90 90 90 55 48 89 e5 41 57 41
+[ 84.035461][T10363] RSP: 0018:ffff8880a818f8f8 EFLAGS: 00010286
+[ 84.041508][T10363] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
+[ 84.049467][T10363] RDX: 0000000000000000 RSI: ffffffff815c5216 RDI: ffffed1015031f11
+[ 84.057421][T10363] RBP: ffff8880a818f908 R08: ffff8880a7e70300 R09: ffffed1015d04101
+[ 84.065383][T10363] R10: ffffed1015d04100 R11: ffff8880ae820807 R12: ffff88821adec338
+[ 84.073527][T10363] R13: ffff888094299820 R14: ffff888094299818 R15: ffff88821adec2b8
+[ 84.081510][T10363] ? vprintk_func+0x86/0x189
+[ 84.086215][T10363] ? refcount_inc_checked+0x61/0x70
+[ 84.091419][T10363] kobject_get+0x66/0xc0
+[ 84.095671][T10363] kobject_add_internal+0x14f/0x380
+[ 84.100884][T10363] ? kfree_const+0x5e/0x70
+[ 84.105300][T10363] kobject_add+0x150/0x1c0
+[ 84.109731][T10363] ? kset_create_and_add+0x1a0/0x1a0
+[ 84.115124][T10363] ? kasan_kmalloc+0x9/0x10
+[ 84.119630][T10363] ? kmem_cache_alloc_trace+0x346/0x790
+[ 84.125165][T10363] get_device_parent.isra.0+0x413/0x560
+[ 84.130695][T10363] device_add+0x2df/0x17a0
+[ 84.135098][T10363] ? get_device_parent.isra.0+0x560/0x560
+[ 84.140797][T10363] ? up_write+0x9d/0x280
+[ 84.145023][T10363] hci_register_dev+0x2e8/0x8f0
+[ 84.149891][T10363] __vhci_create_device+0x2c5/0x5d0
+[ 84.155097][T10363] vhci_write+0x2d0/0x470
+[ 84.159410][T10363] new_sync_write+0x4d3/0x770
+[ 84.164079][T10363] ? new_sync_read+0x800/0x800
+[ 84.168857][T10363] ? common_file_perm+0x238/0x720
+[ 84.173877][T10363] ? __kasan_check_read+0x11/0x20
+[ 84.178900][T10363] ? apparmor_file_permission+0x25/0x30
+[ 84.184451][T10363] ? __sanitizer_cov_trace_const_cmp4+0x16/0x20
+[ 84.190690][T10363] ? security_file_permission+0x8f/0x380
+[ 84.196306][T10363] __vfs_write+0xe1/0x110
+[ 84.200620][T10363] vfs_write+0x268/0x5d0
+[ 84.204844][T10363] ksys_write+0x14f/0x290
+[ 84.209193][T10363] ? __ia32_sys_read+0xb0/0xb0
+[ 84.213943][T10363] ? __sanitizer_cov_trace_const_cmp4+0x16/0x20
+[ 84.220179][T10363] ? entry_SYSCALL_64_after_hwframe+0x3e/0xbe
+[ 84.226325][T10363] __x64_sys_write+0x73/0xb0
+[ 84.230926][T10363] do_syscall_64+0xfd/0x6a0
+[ 84.235415][T10363] entry_SYSCALL_64_after_hwframe+0x49/0xbe
+[ 84.241327][T10363] RIP: 0033:0x441279
+[ 84.245225][T10363] Code: e8 ac e8 ff ff 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 eb 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
+[ 84.264855][T10363] RSP: 002b:00007fffdebca038 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
+[ 84.273275][T10363] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000000000441279
+[ 84.281251][T10363] RDX: 0000000000000002 RSI: 0000000020000000 RDI: 0000000000000003
+[ 84.289237][T10363] RBP: 0000000000014777 R08: 00000000004002c8 R09: 00000000004002c8
+[ 84.297234][T10363] R10: 0000000000000004 R11: 0000000000000246 R12: 0000000000401ff0
+[ 84.305317][T10363] R13: 0000000000402080 R14: 0000000000000000 R15: 0000000000000000
+[ 84.314420][T10363] Kernel Offset: disabled
+[ 84.318949][T10363] Rebooting in 86400 seconds..
diff --git a/pkg/report/testdata/linux/report/407 b/pkg/report/testdata/linux/report/407
new file mode 100644
index 000000000..d2b8a15b9
--- /dev/null
+++ b/pkg/report/testdata/linux/report/407
@@ -0,0 +1,90 @@
+TITLE: WARNING: kobject bug in netdev_register_kobject
+
+[ 24.413160] ------------[ cut here ]------------
+[ 24.417920] WARNING: CPU: 0 PID: 1928 at lib/kobject.c:244 kobject_add_internal.cold.13+0xc8/0xe2
+[ 24.426901] Kernel panic - not syncing: panic_on_warn set ...
+[ 24.426901]
+[ 24.434238] CPU: 0 PID: 1928 Comm: syzkaller927371 Not tainted 4.14.31+ #2
+[ 24.441222] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 24.450548] Call Trace:
+[ 24.453109] dump_stack+0x114/0x1cf
+[ 24.456710] ? show_regs_print_info+0x6a/0x6a
+[ 24.461177] ? _atomic_dec_and_lock+0x171/0x171
+[ 24.465817] ? kobject_add_internal.cold.13+0xc8/0xe2
+[ 24.470981] panic+0x1bb/0x3a0
+[ 24.474164] ? add_taint.cold.6+0x16/0x16
+[ 24.478290] ? kobject_add_internal.cold.13+0xc8/0xe2
+[ 24.483451] __warn.cold.9+0x149/0x186
+[ 24.487317] ? kobject_add_internal.cold.13+0xc8/0xe2
+[ 24.492485] report_bug+0x1f7/0x272
+[ 24.496091] do_error_trap+0x1c1/0x430
+[ 24.499957] ? vprintk_emit+0x23b/0x4e0
+[ 24.503905] ? math_error+0x3c0/0x3c0
+[ 24.507680] ? vprintk_emit+0x200/0x4e0
+[ 24.511635] ? trace_hardirqs_off_thunk+0x1a/0x1c
+[ 24.516451] do_invalid_op+0x20/0x30
+[ 24.520145] invalid_op+0x1b/0x40
+[ 24.523599] RIP: 0010:kobject_add_internal.cold.13+0xc8/0xe2
+[ 24.529380] RSP: 0018:ffff8801d28175c0 EFLAGS: 00010286
+[ 24.534717] RAX: 0000000000000043 RBX: ffff8801d2c9c558 RCX: 0000000000000000
+[ 24.541961] RDX: 0000000000000043 RSI: ffff8801dba1e3b8 RDI: ffffed003a502eae
+[ 24.549202] RBP: ffff8801d28176b8 R08: ffff8801d4f753d8 R09: 0000000000000006
+[ 24.556446] R10: ffff8801d4f74b40 R11: 0000000000000000 R12: ffffffff83adc840
+[ 24.563689] R13: 00000000fffffff4 R14: ffff8801d777f888 R15: ffff8801d2c9c560
+[ 24.570951] ? kobj_ns_type_registered+0x50/0x50
+[ 24.575678] ? lock_release+0x8b0/0x8b0
+[ 24.579626] ? __raw_spin_lock_init+0x32/0x100
+[ 24.584183] ? klist_init+0xf8/0x1c0
+[ 24.587873] ? refcount_inc_not_zero+0xfd/0x170
+[ 24.592529] kobject_add+0x11f/0x180
+[ 24.596215] ? kset_create_and_add+0x170/0x170
+[ 24.600772] ? mutex_unlock+0x12/0x20
+[ 24.604548] device_add+0x390/0x1610
+[ 24.608236] ? dev_set_name+0xa9/0xd0
+[ 24.612032] ? device_private_init+0x240/0x240
+[ 24.616591] ? rtnl_is_locked+0x59/0xb0
+[ 24.620537] ? rtnl_kfree_skbs+0x70/0x70
+[ 24.624573] netdev_register_kobject+0x128/0x2ec
+[ 24.629304] register_netdevice+0x9ba/0xf20
+[ 24.633602] ? netdev_change_features+0x100/0x100
+[ 24.638419] ? __raw_spin_lock_init+0x21/0x100
+[ 24.642973] ? round_jiffies_up+0xfc/0x140
+[ 24.647200] ? __round_jiffies_up_relative+0x190/0x190
+[ 24.652454] __tun_chr_ioctl+0x2307/0x3e40
+[ 24.656666] ? tun_chr_read_iter+0x1e0/0x1e0
+[ 24.661065] ? get_pid_task+0xc5/0x140
+[ 24.664947] ? proc_fail_nth_write+0xbd/0x270
+[ 24.669416] ? proc_task_getattr+0x190/0x190
+[ 24.673807] ? find_held_lock+0x36/0x1c0
+[ 24.677844] ? vfs_write+0x266/0x500
+[ 24.681531] ? lock_downgrade+0x740/0x740
+[ 24.685658] ? kernel_read+0x130/0x130
+[ 24.689533] tun_chr_ioctl+0x2f/0x40
+[ 24.693227] ? tun_chr_compat_ioctl+0x40/0x40
+[ 24.698050] do_vfs_ioctl+0x1b7/0x15d0
+[ 24.701912] ? ioctl_preallocate+0x2c0/0x2c0
+[ 24.706295] ? fget_raw+0x20/0x20
+[ 24.709723] ? __sb_end_write+0xa5/0xd0
+[ 24.713672] ? vfs_write+0x222/0x500
+[ 24.717358] ? SyS_write+0x179/0x230
+[ 24.721051] ? security_file_ioctl+0x94/0xc0
+[ 24.725431] SyS_ioctl+0x94/0xc0
+[ 24.728770] ? do_vfs_ioctl+0x15d0/0x15d0
+[ 24.732890] do_syscall_64+0x251/0x6d0
+[ 24.736752] ? trace_hardirqs_on_thunk+0x1a/0x1c
+[ 24.741482] ? syscall_return_slowpath+0x330/0x330
+[ 24.746385] ? syscall_return_slowpath+0x217/0x330
+[ 24.751308] ? entry_SYSCALL_64_after_hwframe+0x52/0xb7
+[ 24.756644] ? trace_hardirqs_off_thunk+0x1a/0x1c
+[ 24.761462] entry_SYSCALL_64_after_hwframe+0x42/0xb7
+[ 24.766625] RIP: 0033:0x444179
+[ 24.769792] RSP: 002b:00007ffcebc3f4b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
+[ 24.777473] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000000000444179
+[ 24.784720] RDX: 0000000020000180 RSI: 00000000400454ca RDI: 0000000000000003
+[ 24.791963] RBP: 00000000006cf018 R08: 0000000000000001 R09: 00007ffcebc30035
+[ 24.799214] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
+[ 24.806466] R13: ffffffffffffffff R14: 0000000000000000 R15: 0000000000000000
+[ 24.814408] Dumping ftrace buffer:
+[ 24.818034] (ftrace buffer empty)
+[ 24.822300] Kernel Offset: disabled
+[ 24.825915] Rebooting in 86400 seconds..
diff --git a/pkg/report/testdata/linux/report/408 b/pkg/report/testdata/linux/report/408
new file mode 100644
index 000000000..f66029a1d
--- /dev/null
+++ b/pkg/report/testdata/linux/report/408
@@ -0,0 +1,82 @@
+TITLE: WARNING: refcount bug in input_register_device
+
+[ 116.957737] ------------[ cut here ]------------
+[ 116.963070] refcount_t: increment on 0; use-after-free.
+[ 116.968562] WARNING: CPU: 1 PID: 4353 at lib/refcount.c:153 refcount_inc+0x47/0x50
+[ 116.976271] Kernel panic - not syncing: panic_on_warn set ...
+[ 116.976271]
+[ 116.983645] CPU: 1 PID: 4353 Comm: syz-executor5 Not tainted 4.14.89+ #6
+[ 116.990488] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 116.999846] Call Trace:
+[ 117.002449] dump_stack+0x114/0x1cf
+[ 117.006086] ? show_regs_print_info+0x6a/0x6a
+[ 117.010593] ? _atomic_dec_and_lock+0x171/0x171
+[ 117.015311] ? do_raw_spin_trylock+0x190/0x190
+[ 117.019907] ? refcount_inc+0x47/0x50
+[ 117.023720] panic+0x1bb/0x3a0
+[ 117.026918] ? add_taint.cold.6+0x16/0x16
+[ 117.031077] ? __warn.cold.9+0x5/0x46
+[ 117.034887] ? refcount_inc+0x47/0x50
+[ 117.038733] __warn.cold.9+0x20/0x46
+[ 117.042485] ? refcount_inc+0x47/0x50
+[ 117.046293] report_bug+0x1fd/0x272
+[ 117.049928] do_error_trap+0x1c2/0x430
+[ 117.053825] ? math_error+0x3e0/0x3e0
+[ 117.057636] ? vprintk_func+0x63/0xea
+[ 117.061440] ? printk+0xa3/0xbf
+[ 117.064735] ? show_regs_print_info+0x6a/0x6a
+[ 117.069235] ? trace_hardirqs_off_thunk+0x1a/0x1c
+[ 117.074091] do_invalid_op+0x20/0x30
+[ 117.077813] invalid_op+0x1b/0x40
+[ 117.081277] RIP: 0010:refcount_inc+0x47/0x50
+[ 117.085913] RSP: 0018:ffff8881c966f878 EFLAGS: 00010282
+[ 117.085949] RAX: 000000000000002b RBX: ffff8881d40fa500 RCX: ffffc9000207d000
+[ 117.085958] RDX: 00000000000030e2 RSI: ffffffff812d86d3 RDI: ffff8881c966f3c0
+[ 117.085966] RBP: ffff8881c966f880 R08: ffff8881a65421c8 R09: 0000000000000006
+[ 117.085974] R10: 0000000000000000 R11: ffff8881a6541900 R12: dffffc0000000000
+[ 117.085981] R13: ffff8881d40fa4d0 R14: ffff8881d2b7bfc0 R15: ffff8881da3217c8
+[ 117.086009] ? vprintk_func+0x63/0xea
+[ 117.131534] ? refcount_inc+0x47/0x50
+[ 117.135349] kobject_get+0x50/0xa0
+[ 117.139493] get_device_parent.isra.27+0x3e0/0x5a0
+[ 117.144452] device_add+0x301/0x1620
+[ 117.144471] ? device_private_init+0x240/0x240
+[ 117.144502] ? __kmalloc+0x17f/0x380
+[ 117.144520] input_register_device+0x660/0xbb0
+[ 117.144546] ? devm_input_allocate_device+0x130/0x130
+[ 117.144559] ? lock_release+0x920/0x920
+[ 117.144577] uinput_ioctl_handler.isra.9+0x9f3/0x1fe0
+[ 117.144591] ? uinput_request_submit.part.8+0x290/0x290
+[ 117.144613] ? __fget+0x37b/0x580
+[ 117.144622] ? lock_downgrade+0x700/0x700
+[ 117.144640] ? expand_files.part.8+0x850/0x850
+[ 117.144656] ? static_key_enable.constprop.102+0x1b0/0x1b0
+[ 117.144672] ? uinput_compat_ioctl+0x80/0x80
+[ 117.144681] uinput_ioctl+0x51/0x60
+[ 117.144695] do_vfs_ioctl+0x1a4/0x1540
+[ 117.144713] ? ioctl_preallocate+0x2c0/0x2c0
+[ 117.144726] ? fget_raw+0x20/0x20
+[ 117.144739] ? put_timespec64+0x103/0x190
+[ 117.144749] ? nsecs_to_jiffies+0x30/0x30
+[ 117.144788] ? SyS_clock_gettime+0x111/0x1c0
+[ 117.144802] ? security_file_ioctl+0x94/0xc0
+[ 117.144818] SyS_ioctl+0x94/0xc0
+[ 117.144830] ? do_vfs_ioctl+0x1540/0x1540
+[ 117.144843] do_syscall_64+0x251/0x750
+[ 117.144857] ? copy_overflow+0x20/0x20
+[ 117.144868] ? syscall_return_slowpath+0x3b0/0x3b0
+[ 117.144881] ? syscall_return_slowpath+0x220/0x3b0
+[ 117.144893] ? __switch_to_asm+0x34/0x70
+[ 117.144906] ? prepare_exit_to_usermode+0x270/0x270
+[ 117.144920] ? entry_SYSCALL_64_after_hwframe+0x52/0xb7
+[ 117.144936] ? trace_hardirqs_off_thunk+0x1a/0x1c
+[ 117.144956] entry_SYSCALL_64_after_hwframe+0x42/0xb7
+[ 117.144964] RIP: 0033:0x457669
+[ 117.144970] RSP: 002b:00007fb14c000c78 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
+[ 117.144982] RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 0000000000457669
+[ 117.144989] RDX: 0000000000000000 RSI: 0000000000005501 RDI: 0000000000000004
+[ 117.144995] RBP: 000000000072bfa0 R08: 0000000000000000 R09: 0000000000000000
+[ 117.145003] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fb14c0016d4
+[ 117.145010] R13: 00000000004c17af R14: 00000000004d3390 R15: 00000000ffffffff
+[ 117.146088] Kernel Offset: disabled
+[ 117.336935] Rebooting in 86400 seconds..
diff --git a/pkg/report/testdata/linux/report/409 b/pkg/report/testdata/linux/report/409
new file mode 100644
index 000000000..95933e21a
--- /dev/null
+++ b/pkg/report/testdata/linux/report/409
@@ -0,0 +1,62 @@
+TITLE: WARNING: ODEBUG bug in usbhid_disconnect
+
+[ 40.696563][ T21] ------------[ cut here ]------------
+[ 40.702869][ T21] ODEBUG: free active (active state 0) object type: timer_list hint: hid_retry_timeout+0x0/0xd0
+[ 40.713321][ T21] WARNING: CPU: 1 PID: 21 at lib/debugobjects.c:325 debug_print_object+0x160/0x250
+[ 40.722757][ T21] Kernel panic - not syncing: panic_on_warn set ...
+[ 40.729334][ T21] CPU: 1 PID: 21 Comm: kworker/1:1 Not tainted 5.2.0-rc6+ #15
+[ 40.736767][ T21] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 40.746813][ T21] Workqueue: usb_hub_wq hub_event
+[ 40.751813][ T21] Call Trace:
+[ 40.755139][ T21] dump_stack+0xca/0x13e
+[ 40.759374][ T21] ? debug_print_object+0xe0/0x250
+[ 40.764470][ T21] panic+0x292/0x6c9
+[ 40.768354][ T21] ? __warn_printk+0xf3/0xf3
+[ 40.772932][ T21] ? debug_print_object+0x160/0x250
+[ 40.778109][ T21] ? __probe_kernel_read+0x16c/0x1b0
+[ 40.783375][ T21] ? __warn.cold+0x5/0x4b
+[ 40.787687][ T21] ? __warn+0xe4/0x1c0
+[ 40.791732][ T21] ? debug_print_object+0x160/0x250
+[ 40.796910][ T21] __warn.cold+0x20/0x4b
+[ 40.801134][ T21] ? debug_print_object+0x160/0x250
+[ 40.806422][ T21] report_bug+0x262/0x2a0
+[ 40.810744][ T21] do_error_trap+0x12b/0x1e0
+[ 40.815334][ T21] ? debug_print_object+0x160/0x250
+[ 40.820520][ T21] do_invalid_op+0x32/0x40
+[ 40.824919][ T21] ? debug_print_object+0x160/0x250
+[ 40.830100][ T21] invalid_op+0x14/0x20
+[ 40.834325][ T21] RIP: 0010:debug_print_object+0x160/0x250
+[ 40.840106][ T21] Code: dd e0 16 ba 85 48 89 fa 48 c1 ea 03 80 3c 02 00 0f 85 bf 00 00 00 48 8b 14 dd e0 16 ba 85 48 c7 c7 c0 0c ba 85 e8 db c7 33 ff <0f> 0b 83 05 03 6e 86 05 01 48 83 c4 20 5b 5d 41 5c 41 5d c3 48 89
+[ 40.859705][ T21] RSP: 0018:ffff8881d9eff710 EFLAGS: 00010086
+[ 40.865792][ T21] RAX: 0000000000000000 RBX: 0000000000000003 RCX: 0000000000000000
+[ 40.873757][ T21] RDX: 0000000000000000 RSI: ffffffff8127ef3d RDI: ffffed103b3dfed4
+[ 40.881741][ T21] RBP: 0000000000000001 R08: ffff8881d9e36000 R09: ffffed103b663ed7
+[ 40.889697][ T21] R10: ffffed103b663ed6 R11: ffff8881db31f6b7 R12: ffffffff86b04760
+[ 40.897656][ T21] R13: ffffffff812db3c0 R14: ffffffff88f4bae8 R15: ffff8881d0e1a8c8
+[ 40.905626][ T21] ? calc_wheel_index+0x220/0x220
+[ 40.910641][ T21] ? vprintk_func+0x7d/0x113
+[ 40.915222][ T21] debug_check_no_obj_freed+0x2a3/0x42e
+[ 40.920755][ T21] __free_pages_ok+0x215/0x1bb0
+[ 40.925597][ T21] ? usbhid_disconnect+0x98/0xd0
+[ 40.930522][ T21] ? rcu_read_lock_sched_held+0x113/0x130
+[ 40.936254][ T21] usbhid_disconnect+0x98/0xd0
+[ 40.941010][ T21] usb_unbind_interface+0x1bd/0x8a0
+[ 40.946197][ T21] ? usb_autoresume_device+0x60/0x60
+[ 40.951469][ T21] device_release_driver_internal+0x404/0x4c0
+[ 40.957530][ T21] bus_remove_device+0x2dc/0x4a0
+[ 40.962454][ T21] device_del+0x460/0xb80
+[ 40.966776][ T21] ? __device_links_no_driver+0x240/0x240
+[ 40.972502][ T21] ? usb_remove_ep_devs+0x3e/0x80
+[ 40.977618][ T21] ? remove_intf_ep_devs+0x13f/0x1d0
+[ 40.982892][ T21] usb_disable_device+0x211/0x690
+[ 40.987905][ T21] usb_disconnect+0x284/0x830
+[ 40.992571][ T21] hub_event+0x13bd/0x3550
+[ 40.997067][ T21] ? hub_port_debounce+0x260/0x260
+[ 41.002171][ T21] process_one_work+0x905/0x1570
+[ 41.007104][ T21] ? pwq_dec_nr_in_flight+0x310/0x310
+[ 41.012472][ T21] ? do_raw_spin_lock+0x11a/0x280
+[ 41.017498][ T21] worker_thread+0x96/0xe20
+[ 41.022016][ T21] ? process_one_work+0x1570/0x1570
+[ 41.027211][ T21] kthread+0x30b/0x410
+[ 41.031295][ T21] ? kthread_park+0x1a0/0x1a0
+[ 41.035965][ T21] ret_from_fork+0x24/0x30
diff --git a/pkg/report/testdata/linux/report/410 b/pkg/report/testdata/linux/report/410
new file mode 100644
index 000000000..1cb9bf3e2
--- /dev/null
+++ b/pkg/report/testdata/linux/report/410
@@ -0,0 +1,155 @@
+TITLE: KASAN: use-after-free Read in hiddev_read
+
+[ 501.875843][ T9186] ==================================================================
+[ 501.883925][ T9186] BUG: KASAN: use-after-free in __lock_acquire+0x302a/0x3b50
+[ 501.891279][ T9186] Read of size 8 at addr ffff8881d2bec328 by task syz-executor.4/9186
+[ 501.899408][ T9186]
+[ 501.901720][ T9186] CPU: 1 PID: 9186 Comm: syz-executor.4 Not tainted 5.3.0-rc4+ #26
+[ 501.909584][ T9186] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 501.919617][ T9186] Call Trace:
+[ 501.922891][ T9186] dump_stack+0xca/0x13e
+[ 501.927205][ T9186] ? __lock_acquire+0x302a/0x3b50
+[ 501.932208][ T9186] ? __lock_acquire+0x302a/0x3b50
+[ 501.937386][ T9186] print_address_description+0x6a/0x32c
+[ 501.943011][ T9186] ? __lock_acquire+0x302a/0x3b50
+[ 501.948027][ T9186] ? __lock_acquire+0x302a/0x3b50
+[ 501.953037][ T9186] __kasan_report.cold+0x1a/0x33
+[ 501.957975][ T9186] ? __lock_acquire+0x302a/0x3b50
+[ 501.962995][ T9186] kasan_report+0xe/0x12
+[ 501.967223][ T9186] __lock_acquire+0x302a/0x3b50
+[ 501.972052][ T9186] ? __mutex_lock+0x430/0x1360
+[ 501.976800][ T9186] ? lockdep_hardirqs_on+0x379/0x580
+[ 501.982076][ T9186] ? mark_held_locks+0xe0/0xe0
+[ 501.986833][ T9186] ? finish_task_switch+0xef/0x5a0
+[ 501.991940][ T9186] ? mutex_trylock+0x2c0/0x2c0
+[ 501.996706][ T9186] lock_acquire+0x127/0x320
+[ 502.001227][ T9186] ? finish_wait+0xb2/0x260
+[ 502.005747][ T9186] _raw_spin_lock_irqsave+0x32/0x50
+[ 502.010938][ T9186] ? finish_wait+0xb2/0x260
+[ 502.015417][ T9186] finish_wait+0xb2/0x260
+[ 502.019727][ T9186] hiddev_read+0x89d/0xbd0
+[ 502.024128][ T9186] ? hiddev_ioctl_usage.isra.0+0x13b0/0x13b0
+[ 502.030087][ T9186] ? finish_wait+0x260/0x260
+[ 502.034763][ T9186] ? security_file_permission+0x8a/0x370
+[ 502.040382][ T9186] ? hiddev_ioctl_usage.isra.0+0x13b0/0x13b0
+[ 502.046372][ T9186] __vfs_read+0x76/0x100
+[ 502.050592][ T9186] vfs_read+0x1ea/0x430
+[ 502.054731][ T9186] ksys_read+0x127/0x250
+[ 502.058971][ T9186] ? kernel_write+0x120/0x120
+[ 502.063636][ T9186] ? __ia32_sys_clock_settime+0x260/0x260
+[ 502.069398][ T9186] ? trace_hardirqs_off_caller+0x55/0x1e0
+[ 502.075096][ T9186] do_syscall_64+0xb7/0x580
+[ 502.079579][ T9186] entry_SYSCALL_64_after_hwframe+0x49/0xbe
+[ 502.085444][ T9186] RIP: 0033:0x459829
+[ 502.089321][ T9186] Code: fd b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 cb b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00
+[ 502.108917][ T9186] RSP: 002b:00007fab15b5ec78 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
+[ 502.117329][ T9186] RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000459829
+[ 502.125309][ T9186] RDX: 0000000000000015 RSI: 0000000020000080 RDI: 0000000000000003
+[ 502.133274][ T9186] RBP: 000000000075bf20 R08: 0000000000000000 R09: 0000000000000000
+[ 502.141235][ T9186] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fab15b5f6d4
+[ 502.149188][ T9186] R13: 00000000004c6c66 R14: 00000000004dbf70 R15: 00000000ffffffff
+[ 502.157159][ T9186]
+[ 502.159473][ T9186] Allocated by task 2740:
+[ 502.163784][ T9186] save_stack+0x1b/0x80
+[ 502.167922][ T9186] __kasan_kmalloc.constprop.0+0xbf/0xd0
+[ 502.173535][ T9186] hiddev_connect+0x242/0x5b0
+[ 502.178192][ T9186] hid_connect+0x239/0xbb0
+[ 502.182586][ T9186] hid_hw_start+0xa2/0x130
+[ 502.186994][ T9186] appleir_probe+0x13e/0x1a0
+[ 502.191604][ T9186] hid_device_probe+0x2be/0x3f0
+[ 502.196434][ T9186] really_probe+0x281/0x6d0
+[ 502.200910][ T9186] driver_probe_device+0x101/0x1b0
+[ 502.206018][ T9186] __device_attach_driver+0x1c2/0x220
+[ 502.211368][ T9186] bus_for_each_drv+0x162/0x1e0
+[ 502.216193][ T9186] __device_attach+0x217/0x360
+[ 502.220930][ T9186] bus_probe_device+0x1e4/0x290
+[ 502.225751][ T9186] device_add+0xae6/0x16f0
+[ 502.230141][ T9186] hid_add_device+0x33c/0x990
+[ 502.234822][ T9186] usbhid_probe+0xa81/0xfa0
+[ 502.239317][ T9186] usb_probe_interface+0x305/0x7a0
+[ 502.244404][ T9186] really_probe+0x281/0x6d0
+[ 502.248900][ T9186] driver_probe_device+0x101/0x1b0
+[ 502.253989][ T9186] __device_attach_driver+0x1c2/0x220
+[ 502.259334][ T9186] bus_for_each_drv+0x162/0x1e0
+[ 502.264163][ T9186] __device_attach+0x217/0x360
+[ 502.268903][ T9186] bus_probe_device+0x1e4/0x290
+[ 502.273728][ T9186] device_add+0xae6/0x16f0
+[ 502.278122][ T9186] usb_set_configuration+0xdf6/0x1670
+[ 502.283477][ T9186] generic_probe+0x9d/0xd5
+[ 502.287883][ T9186] usb_probe_device+0x99/0x100
+[ 502.292638][ T9186] really_probe+0x281/0x6d0
+[ 502.297115][ T9186] driver_probe_device+0x101/0x1b0
+[ 502.302210][ T9186] __device_attach_driver+0x1c2/0x220
+[ 502.307599][ T9186] bus_for_each_drv+0x162/0x1e0
+[ 502.312433][ T9186] __device_attach+0x217/0x360
+[ 502.317191][ T9186] bus_probe_device+0x1e4/0x290
+[ 502.322021][ T9186] device_add+0xae6/0x16f0
+[ 502.326435][ T9186] usb_new_device.cold+0x6a4/0xe79
+[ 502.331546][ T9186] hub_event+0x1b5c/0x3640
+[ 502.335936][ T9186] process_one_work+0x92b/0x1530
+[ 502.340860][ T9186] worker_thread+0x96/0xe20
+[ 502.345352][ T9186] kthread+0x318/0x420
+[ 502.349397][ T9186] ret_from_fork+0x24/0x30
+[ 502.353782][ T9186]
+[ 502.356085][ T9186] Freed by task 2740:
+[ 502.360055][ T9186] save_stack+0x1b/0x80
+[ 502.364188][ T9186] __kasan_slab_free+0x130/0x180
+[ 502.369112][ T9186] kfree+0xe4/0x2f0
+[ 502.372898][ T9186] hiddev_connect.cold+0x45/0x5c
+[ 502.377814][ T9186] hid_connect+0x239/0xbb0
+[ 502.382209][ T9186] hid_hw_start+0xa2/0x130
+[ 502.386598][ T9186] appleir_probe+0x13e/0x1a0
+[ 502.391199][ T9186] hid_device_probe+0x2be/0x3f0
+[ 502.396033][ T9186] really_probe+0x281/0x6d0
+[ 502.400515][ T9186] driver_probe_device+0x101/0x1b0
+[ 502.405604][ T9186] __device_attach_driver+0x1c2/0x220
+[ 502.410951][ T9186] bus_for_each_drv+0x162/0x1e0
+[ 502.415808][ T9186] __device_attach+0x217/0x360
+[ 502.420546][ T9186] bus_probe_device+0x1e4/0x290
+[ 502.425378][ T9186] device_add+0xae6/0x16f0
+[ 502.429787][ T9186] hid_add_device+0x33c/0x990
+[ 502.434459][ T9186] usbhid_probe+0xa81/0xfa0
+[ 502.438964][ T9186] usb_probe_interface+0x305/0x7a0
+[ 502.444079][ T9186] really_probe+0x281/0x6d0
+[ 502.448625][ T9186] driver_probe_device+0x101/0x1b0
+[ 502.453738][ T9186] __device_attach_driver+0x1c2/0x220
+[ 502.459113][ T9186] bus_for_each_drv+0x162/0x1e0
+[ 502.463963][ T9186] __device_attach+0x217/0x360
+[ 502.468724][ T9186] bus_probe_device+0x1e4/0x290
+[ 502.473566][ T9186] device_add+0xae6/0x16f0
+[ 502.477962][ T9186] usb_set_configuration+0xdf6/0x1670
+[ 502.483332][ T9186] generic_probe+0x9d/0xd5
+[ 502.487724][ T9186] usb_probe_device+0x99/0x100
+[ 502.492462][ T9186] really_probe+0x281/0x6d0
+[ 502.496939][ T9186] driver_probe_device+0x101/0x1b0
+[ 502.502024][ T9186] __device_attach_driver+0x1c2/0x220
+[ 502.507376][ T9186] bus_for_each_drv+0x162/0x1e0
+[ 502.512214][ T9186] __device_attach+0x217/0x360
+[ 502.516952][ T9186] bus_probe_device+0x1e4/0x290
+[ 502.521774][ T9186] device_add+0xae6/0x16f0
+[ 502.526179][ T9186] usb_new_device.cold+0x6a4/0xe79
+[ 502.537376][ T9186] hub_event+0x1b5c/0x3640
+[ 502.545003][ T9186] process_one_work+0x92b/0x1530
+[ 502.553088][ T9186] worker_thread+0x96/0xe20
+[ 502.559520][ T9186] kthread+0x318/0x420
+[ 502.563805][ T9186] ret_from_fork+0x24/0x30
+[ 502.568194][ T9186]
+[ 502.570511][ T9186] The buggy address belongs to the object at ffff8881d2bec280
+[ 502.570511][ T9186] which belongs to the cache kmalloc-512 of size 512
+[ 502.584563][ T9186] The buggy address is located 168 bytes inside of
+[ 502.584563][ T9186] 512-byte region [ffff8881d2bec280, ffff8881d2bec480)
+[ 502.597836][ T9186] The buggy address belongs to the page:
+[ 502.603455][ T9186] page:ffffea00074afb00 refcount:1 mapcount:0 mapping:ffff8881da002500 index:0x0 compound_mapcount: 0
+[ 502.614364][ T9186] flags: 0x200000000010200(slab|head)
+[ 502.619739][ T9186] raw: 0200000000010200 ffffea000741fc80 0000000600000006 ffff8881da002500
+[ 502.628303][ T9186] raw: 0000000000000000 00000000000c000c 00000001ffffffff 0000000000000000
+[ 502.636880][ T9186] page dumped because: kasan: bad access detected
+[ 502.643315][ T9186]
+[ 502.645617][ T9186] Memory state around the buggy address:
+[ 502.651257][ T9186] ffff8881d2bec200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
+[ 502.659293][ T9186] ffff8881d2bec280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 502.667334][ T9186] >ffff8881d2bec300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 502.675368][ T9186] ^
+[ 502.680764][ T9186] ffff8881d2bec380: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 502.688804][ T9186] ffff8881d2bec400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 502.696846][ T9186] ==================================================================
diff --git a/pkg/report/testdata/linux/report/411 b/pkg/report/testdata/linux/report/411
new file mode 100644
index 000000000..3d4a55e2b
--- /dev/null
+++ b/pkg/report/testdata/linux/report/411
@@ -0,0 +1,79 @@
+TITLE: WARNING in r871xu_dev_remove
+
+[ 26.966491][ T101] ------------[ cut here ]------------
+[ 26.974331][ T1737] usb 5-1: Direct firmware load for rtlwifi/rtl8712u.bin failed with error -2
+[ 26.978202][ T101] WARNING: CPU: 0 PID: 101 at net/core/dev.c:8167 rollback_registered_many.cold+0x41/0x1bc
+[ 26.987452][ T1737] usb 5-1: r8712u: Firmware request failed
+[ 26.996887][ T101] Kernel panic - not syncing: panic_on_warn set ...
+[ 26.996902][ T101] CPU: 0 PID: 101 Comm: kworker/0:2 Not tainted 5.3.0-rc4+ #26
+[ 26.996910][ T101] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 26.996926][ T101] Workqueue: usb_hub_wq hub_event
+[ 26.996933][ T101] Call Trace:
+[ 26.996950][ T101] dump_stack+0xca/0x13e
+[ 26.996970][ T101] ? rollback_registered_many.cold+0x4/0x1bc
+[ 26.996988][ T101] panic+0x2a3/0x6da
+[ 27.003322][ T1737] usb 2-1: Direct firmware load for rtlwifi/rtl8712u.bin failed with error -2
+[ 27.009556][ T101] ? add_taint.cold+0x16/0x16
+[ 27.009572][ T101] ? __probe_kernel_read+0x188/0x1d0
+[ 27.009583][ T101] ? __warn.cold+0x5/0x4a
+[ 27.009592][ T101] ? __warn+0xe3/0x1e0
+[ 27.009606][ T101] ? rollback_registered_many.cold+0x41/0x1bc
+[ 27.009615][ T101] __warn.cold+0x20/0x4a
+[ 27.009627][ T101] ? __irq_work_queue_local+0xa3/0xe0
+[ 27.009639][ T101] ? rollback_registered_many.cold+0x41/0x1bc
+[ 27.009651][ T101] report_bug+0x262/0x2a0
+[ 27.009671][ T101] do_error_trap+0x12b/0x1e0
+[ 27.034511][ T1737] usb 2-1: r8712u: Firmware request failed
+[ 27.037337][ T101] ? rollback_registered_many.cold+0x41/0x1bc
+[ 27.037352][ T101] do_invalid_op+0x32/0x40
+[ 27.037366][ T101] ? rollback_registered_many.cold+0x41/0x1bc
+[ 27.037378][ T101] invalid_op+0x23/0x30
+[ 27.037398][ T101] RIP: 0010:rollback_registered_many.cold+0x41/0x1bc
+[ 27.142564][ T101] Code: ff e8 c7 17 90 fc 48 c7 c7 00 e8 63 86 e8 24 b8 7a fc 0f 0b e9 93 be ff ff e8 af 17 90 fc 48 c7 c7 00 e8 63 86 e8 0c b8 7a fc <0f> 0b 4c 89 e7 e8 f9 0a 34 fd 31 ff 41 89 c4 89 c6 e8 bd 18 90 fc
+[ 27.162178][ T101] RSP: 0018:ffff8881d505f6a8 EFLAGS: 00010286
+[ 27.168229][ T101] RAX: 0000000000000024 RBX: ffff8881d2918000 RCX: 0000000000000000
+[ 27.176185][ T101] RDX: 0000000000000000 RSI: ffffffff81288cfd RDI: ffffed103aa0bec7
+[ 27.184168][ T101] RBP: ffff8881d505f7d8 R08: 0000000000000024 R09: ffffed103b645d58
+[ 27.192164][ T101] R10: ffffed103b645d57 R11: ffff8881db22eabf R12: ffff8881d2918070
+[ 27.200168][ T101] R13: ffff8881d505f768 R14: dffffc0000000000 R15: 0000000000000000
+[ 27.208146][ T101] ? vprintk_func+0x7d/0x113
+[ 27.212725][ T101] ? rollback_registered_many.cold+0x41/0x1bc
+[ 27.218798][ T101] ? generic_xdp_install+0x480/0x480
+[ 27.224134][ T101] ? __mutex_lock+0x430/0x1360
+[ 27.228886][ T101] ? do_raw_spin_lock+0x11a/0x280
+[ 27.233931][ T101] ? unregister_netdev+0xe/0x20
+[ 27.238772][ T101] ? mark_held_locks+0x9f/0xe0
+[ 27.243538][ T101] ? _raw_spin_unlock_irq+0x24/0x30
+[ 27.248824][ T101] ? mutex_trylock+0x2c0/0x2c0
+[ 27.253605][ T101] rollback_registered+0xf2/0x1c0
+[ 27.258619][ T101] ? rollback_registered_many+0xc70/0xc70
+[ 27.264340][ T101] ? wait_for_completion_interruptible+0x420/0x420
+[ 27.271069][ T101] ? wake_up_q+0xf0/0xf0
+[ 27.275346][ T101] unregister_netdevice_queue+0x1d7/0x2b0
+[ 27.281338][ T101] unregister_netdev+0x18/0x20
+[ 27.286113][ T101] r871xu_dev_remove+0xe2/0x215
+[ 27.291003][ T101] usb_unbind_interface+0x1bd/0x8a0
+[ 27.296248][ T101] ? usb_autoresume_device+0x60/0x60
+[ 27.301608][ T101] device_release_driver_internal+0x42f/0x500
+[ 27.307702][ T101] bus_remove_device+0x2dc/0x4a0
+[ 27.312628][ T101] device_del+0x420/0xb10
+[ 27.317511][ T101] ? __device_links_no_driver+0x240/0x240
+[ 27.323349][ T101] ? lockdep_hardirqs_on+0x379/0x580
+[ 27.328733][ T101] ? remove_intf_ep_devs+0x13f/0x1d0
+[ 27.334034][ T101] usb_disable_device+0x211/0x690
+[ 27.339051][ T101] usb_disconnect+0x284/0x8d0
+[ 27.343966][ T101] hub_event+0x1454/0x3640
+[ 27.348381][ T101] ? find_held_lock+0x2d/0x110
+[ 27.353128][ T101] ? mark_held_locks+0xe0/0xe0
+[ 27.357885][ T101] ? hub_port_debounce+0x260/0x260
+[ 27.363039][ T101] process_one_work+0x92b/0x1530
+[ 27.367968][ T101] ? pwq_dec_nr_in_flight+0x310/0x310
+[ 27.369585][ T22] usb 1-1: new high-speed USB device number 3 using dummy_hcd
+[ 27.373329][ T101] ? do_raw_spin_lock+0x11a/0x280
+[ 27.373343][ T101] worker_thread+0x7ab/0xe20
+[ 27.373358][ T101] ? process_one_work+0x1530/0x1530
+[ 27.373370][ T101] kthread+0x318/0x420
+[ 27.373382][ T101] ? kthread_create_on_node+0xf0/0xf0
+[ 27.373396][ T101] ret_from_fork+0x24/0x30
+[ 27.381295][ T101] Kernel Offset: disabled
+[ 27.414812][ T101] Rebooting in 86400 seconds..
diff --git a/pkg/report/testdata/linux/report/412 b/pkg/report/testdata/linux/report/412
new file mode 100644
index 000000000..326028b8e
--- /dev/null
+++ b/pkg/report/testdata/linux/report/412
@@ -0,0 +1,110 @@
+TITLE: WARNING in default_device_exit_batch
+
+[ 794.553848] WARNING: CPU: 0 PID: 21 at net/core/dev.c:8022 rollback_registered_many+0xeca/0x1250
+[ 794.562851] Kernel panic - not syncing: panic_on_warn set ...
+[ 794.568712] CPU: 0 PID: 21 Comm: kworker/u4:1 Not tainted 4.20.0-rc2+ #116
+[ 794.575698] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 794.585053] Workqueue: netns cleanup_net
+[ 794.589098] Call Trace:
+[ 794.591669] dump_stack+0x244/0x39d
+[ 794.595288] ? dump_stack_print_info.cold.1+0x20/0x20
+[ 794.600467] panic+0x2ad/0x55c
+[ 794.603639] ? add_taint.cold.5+0x16/0x16
+[ 794.607782] ? __warn.cold.8+0x5/0x45
+[ 794.611559] ? __warn+0xe8/0x1d0
+[ 794.614920] ? rollback_registered_many+0xeca/0x1250
+[ 794.620000] __warn.cold.8+0x20/0x45
+[ 794.623692] ? rcu_softirq_qs+0x20/0x20
+[ 794.627645] ? rollback_registered_many+0xeca/0x1250
+[ 794.632730] report_bug+0x254/0x2d0
+[ 794.636443] do_error_trap+0x11b/0x200
+[ 794.640313] do_invalid_op+0x36/0x40
+[ 794.644013] ? rollback_registered_many+0xeca/0x1250
+[ 794.649107] invalid_op+0x14/0x20
+[ 794.652539] RIP: 0010:rollback_registered_many+0xeca/0x1250
+[ 794.658228] Code: 57 19 00 00 48 c7 c6 e0 dd bc 88 48 c7 c7 20 de bc 88 c6 05 98 4d e2 03 01 e8 42 7f 18 fb 0f 0b e9 a6 f9 ff ff e8 c6 1b 4f fb <0f> 0b e9 7b f9 ff ff e8 ba 1b 4f fb 0f 0b e9 ea f9 ff ff e8 ae 1b
+[ 794.677104] RSP: 0018:ffff8881d9467058 EFLAGS: 00010293
+[ 794.682443] RAX: ffff8881d945a580 RBX: ffff8881bef64940 RCX: ffffffff86306593
+[ 794.689692] RDX: 0000000000000000 RSI: ffffffff86306c1a RDI: 0000000000000001
+[ 794.696940] RBP: ffff8881d94672a0 R08: ffff8881d945a580 R09: fffffbfff13e1a38
+[ 794.704187] R10: fffffbfff13e1a38 R11: ffffffff89f0d1c7 R12: dffffc0000000000
+[ 794.711434] R13: 0000000000000001 R14: ffffffff8494d7c0 R15: ffff8881d9467138
+[ 794.718687] ? bond_do_ioctl+0xae0/0xae0
+[ 794.722729] ? rollback_registered_many+0x843/0x1250
+[ 794.727835] ? rollback_registered_many+0xeca/0x1250
+[ 794.733056] ? rollback_registered_many+0xeca/0x1250
+[ 794.738156] ? generic_xdp_install+0x590/0x590
+[ 794.742750] ? __sanitizer_cov_trace_const_cmp4+0x16/0x20
+[ 794.748276] ? check_preemption_disabled+0x48/0x280
+[ 794.753274] ? __lock_is_held+0xb5/0x140
+[ 794.757326] ? __sanitizer_cov_trace_const_cmp8+0x18/0x20
+[ 794.762845] ? rtnl_is_locked+0xb5/0xf0
+[ 794.766794] ? rtnl_trylock+0x20/0x20
+[ 794.770574] ? __sanitizer_cov_trace_const_cmp8+0x18/0x20
+[ 794.776090] ? rtnl_is_locked+0xb5/0xf0
+[ 794.780064] ? rtnl_trylock+0x20/0x20
+[ 794.783839] ? __sanitizer_cov_trace_const_cmp1+0x1a/0x20
+[ 794.789355] ? unregister_netdevice_queue+0x2c0/0x5e0
+[ 794.794540] unregister_netdevice_many+0xfa/0x4c0
+[ 794.799362] ? unregister_netdev+0x30/0x30
+[ 794.803578] ? sysfs_remove_group+0xf6/0x1b0
+[ 794.807969] ? br_dev_delete+0x139/0x190
+[ 794.812137] default_device_exit_batch+0x43a/0x540
+[ 794.817054] ? unregister_netdevice_many+0x4c0/0x4c0
+[ 794.822140] ? default_device_exit+0x224/0x2c0
+[ 794.826792] ? __init_waitqueue_head+0x150/0x150
+[ 794.831528] ? rtnl_unlock+0xe/0x10
+[ 794.835140] ? unregister_netdevice_many+0x4c0/0x4c0
+[ 794.840217] ? dev_change_net_namespace+0xe50/0xe50
+[ 794.845208] ops_exit_list.isra.5+0x105/0x160
+[ 794.849684] cleanup_net+0x555/0xb10
+[ 794.853375] ? peernet2id_alloc+0x3e0/0x3e0
+[ 794.857672] ? find_held_lock+0x36/0x1c0
+[ 794.861714] ? zap_class+0x640/0x640
+[ 794.865425] ? __sanitizer_cov_trace_const_cmp4+0x16/0x20
+[ 794.871247] ? check_preemption_disabled+0x48/0x280
+[ 794.876250] ? __lock_is_held+0xb5/0x140
+[ 794.880296] process_one_work+0xc90/0x1c40
+[ 794.884521] ? mark_held_locks+0x130/0x130
+[ 794.888859] ? pwq_dec_nr_in_flight+0x4a0/0x4a0
+[ 794.893513] ? __switch_to_asm+0x40/0x70
+[ 794.897571] ? __switch_to_asm+0x34/0x70
+[ 794.901607] ? __switch_to_asm+0x34/0x70
+[ 794.905645] ? __switch_to_asm+0x40/0x70
+[ 794.909683] ? __switch_to_asm+0x34/0x70
+[ 794.913720] ? __switch_to_asm+0x40/0x70
+[ 794.917771] ? __switch_to_asm+0x34/0x70
+[ 794.921824] ? __switch_to_asm+0x40/0x70
+[ 794.925863] ? __schedule+0x8d7/0x21d0
+[ 794.929728] ? lockdep_hardirqs_on+0x3bb/0x5b0
+[ 794.934292] ? trace_hardirqs_on_caller+0x310/0x310
+[ 794.939285] ? zap_class+0x640/0x640
+[ 794.943014] ? lockdep_hardirqs_on+0x3bb/0x5b0
+[ 794.947588] ? lock_acquire+0x1ed/0x520
+[ 794.951537] ? worker_thread+0x3e0/0x1390
+[ 794.955672] ? kasan_check_read+0x11/0x20
+[ 794.959797] ? do_raw_spin_lock+0x14f/0x350
+[ 794.964098] ? kasan_check_read+0x11/0x20
+[ 794.968223] ? rwlock_bug.part.2+0x90/0x90
+[ 794.972435] ? trace_hardirqs_on+0x310/0x310
+[ 794.976828] worker_thread+0x17f/0x1390
+[ 794.980779] ? __switch_to_asm+0x34/0x70
+[ 794.984825] ? process_one_work+0x1c40/0x1c40
+[ 794.989310] ? __sched_text_start+0x8/0x8
+[ 794.993446] ? __kthread_parkme+0xce/0x1a0
+[ 794.997655] ? _raw_spin_unlock_irqrestore+0x82/0xd0
+[ 795.002736] ? _raw_spin_unlock_irqrestore+0x82/0xd0
+[ 795.007814] ? lockdep_hardirqs_on+0x3bb/0x5b0
+[ 795.012390] ? trace_hardirqs_on+0xbd/0x310
+[ 795.016686] ? kasan_check_read+0x11/0x20
+[ 795.020810] ? __kthread_parkme+0xce/0x1a0
+[ 795.025036] ? trace_hardirqs_off_caller+0x310/0x310
+[ 795.030138] ? _raw_spin_unlock_irqrestore+0x6d/0xd0
+[ 795.035233] ? __sanitizer_cov_trace_const_cmp8+0x18/0x20
+[ 795.040742] ? __kthread_parkme+0xfb/0x1a0
+[ 795.044955] ? process_one_work+0x1c40/0x1c40
+[ 795.049426] kthread+0x35a/0x440
+[ 795.052772] ? kthread_stop+0x900/0x900
+[ 795.056725] ret_from_fork+0x3a/0x50
+[ 795.061996] Kernel Offset: disabled
+[ 795.065886] Rebooting in 86400 seconds..
diff --git a/pkg/report/testdata/linux/report/413 b/pkg/report/testdata/linux/report/413
new file mode 100644
index 000000000..84972a03b
--- /dev/null
+++ b/pkg/report/testdata/linux/report/413
@@ -0,0 +1,113 @@
+TITLE: KASAN: use-after-free Read in iowarrior_disconnect
+
+[ 272.327487][ T12] ==================================================================
+[ 272.335789][ T12] BUG: KASAN: use-after-free in __list_del_entry_valid+0x15e/0x170
+[ 272.336706][ T2803] hub 4-1:0.0: USB hub found
+[ 272.343673][ T12] Read of size 8 at addr ffff8881d1b97948 by task kworker/0:1/12
+[ 272.343694][ T12]
+[ 272.343710][ T12] CPU: 0 PID: 12 Comm: kworker/0:1 Not tainted 5.3.0-rc5+ #28
+[ 272.343718][ T12] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 272.343738][ T12] Workqueue: usb_hub_wq hub_event
+[ 272.380797][ T12] Call Trace:
+[ 272.384096][ T12] dump_stack+0xca/0x13e
+[ 272.388338][ T12] ? __list_del_entry_valid+0x15e/0x170
+[ 272.393865][ T12] ? __list_del_entry_valid+0x15e/0x170
+[ 272.399386][ T12] print_address_description+0x6a/0x32c
+[ 272.404915][ T12] ? __list_del_entry_valid+0x15e/0x170
+[ 272.410445][ T12] ? __list_del_entry_valid+0x15e/0x170
+[ 272.416029][ T12] __kasan_report.cold+0x1a/0x33
+[ 272.421045][ T12] ? do_raw_spin_lock+0x70/0x280
+[ 272.425962][ T12] ? __list_del_entry_valid+0x15e/0x170
+[ 272.431487][ T12] kasan_report+0xe/0x12
+[ 272.435712][ T12] __list_del_entry_valid+0x15e/0x170
+[ 272.441085][ T12] mutex_remove_waiter+0x200/0x470
+[ 272.446177][ T12] __mutex_lock+0x4e0/0x1360
+[ 272.450760][ T12] ? iowarrior_disconnect+0xf0/0x2c0
+[ 272.456024][ T12] ? mutex_trylock+0x2c0/0x2c0
+[ 272.460761][ T12] ? __mutex_unlock_slowpath+0xea/0x670
+[ 272.466280][ T12] ? iowarrior_disconnect+0xf0/0x2c0
+[ 272.471542][ T12] iowarrior_disconnect+0xf0/0x2c0
+[ 272.476643][ T12] usb_unbind_interface+0x1bd/0x8a0
+[ 272.479187][ T2760] usb 6-1: USB disconnect, device number 120
+[ 272.481834][ T12] ? usb_autoresume_device+0x60/0x60
+[ 272.481851][ T12] device_release_driver_internal+0x42f/0x500
+[ 272.481864][ T12] bus_remove_device+0x2dc/0x4a0
+[ 272.481881][ T12] device_del+0x420/0xb10
+[ 272.508329][ T12] ? __device_links_no_driver+0x240/0x240
+[ 272.514037][ T12] ? usb_remove_ep_devs+0x3e/0x80
+[ 272.519065][ T12] ? remove_intf_ep_devs+0x13f/0x1d0
+[ 272.524348][ T12] usb_disable_device+0x211/0x690
+[ 272.529363][ T12] usb_disconnect+0x284/0x8d0
+[ 272.534019][ T12] hub_event+0x1454/0x3640
+[ 272.538415][ T12] ? find_held_lock+0x2d/0x110
+[ 272.543164][ T12] ? mark_held_locks+0xe0/0xe0
+[ 272.547913][ T12] ? hub_port_debounce+0x260/0x260
+[ 272.553031][ T12] process_one_work+0x92b/0x1530
+[ 272.557971][ T12] ? pwq_dec_nr_in_flight+0x310/0x310
+[ 272.563344][ T12] ? do_raw_spin_lock+0x11a/0x280
+[ 272.568369][ T12] worker_thread+0x96/0xe20
+[ 272.572871][ T12] ? process_one_work+0x1530/0x1530
+[ 272.578059][ T12] kthread+0x318/0x420
+[ 272.582117][ T12] ? kthread_create_on_node+0xf0/0xf0
+[ 272.587470][ T12] ret_from_fork+0x24/0x30
+[ 272.591866][ T12]
+[ 272.594181][ T12] Allocated by task 102:
+[ 272.598410][ T12] save_stack+0x1b/0x80
+[ 272.602538][ T12] __kasan_kmalloc.constprop.0+0xbf/0xd0
+[ 272.608146][ T12] iowarrior_probe+0x7a/0x10b2
+[ 272.612890][ T12] usb_probe_interface+0x305/0x7a0
+[ 272.617996][ T12] really_probe+0x281/0x6d0
+[ 272.622493][ T12] driver_probe_device+0x101/0x1b0
+[ 272.627609][ T12] __device_attach_driver+0x1c2/0x220
+[ 272.632973][ T12] bus_for_each_drv+0x162/0x1e0
+[ 272.637819][ T12] __device_attach+0x217/0x360
+[ 272.642579][ T12] bus_probe_device+0x1e4/0x290
+[ 272.647430][ T12] device_add+0xae6/0x16f0
+[ 272.651852][ T12] usb_set_configuration+0xdf6/0x1670
+[ 272.657222][ T12] generic_probe+0x9d/0xd5
+[ 272.661635][ T12] usb_probe_device+0x99/0x100
+[ 272.666396][ T12] really_probe+0x281/0x6d0
+[ 272.670894][ T12] driver_probe_device+0x101/0x1b0
+[ 272.676004][ T12] __device_attach_driver+0x1c2/0x220
+[ 272.681366][ T12] bus_for_each_drv+0x162/0x1e0
+[ 272.686208][ T12] __device_attach+0x217/0x360
+[ 272.690960][ T12] bus_probe_device+0x1e4/0x290
+[ 272.695804][ T12] device_add+0xae6/0x16f0
+[ 272.700217][ T12] usb_new_device.cold+0x6a4/0xe79
+[ 272.705321][ T12] hub_event+0x1b5c/0x3640
+[ 272.709728][ T12] process_one_work+0x92b/0x1530
+[ 272.714658][ T12] worker_thread+0x96/0xe20
+[ 272.719154][ T12] kthread+0x318/0x420
+[ 272.723218][ T12] ret_from_fork+0x24/0x30
+[ 272.727616][ T12]
+[ 272.729936][ T12] Freed by task 5858:
+[ 272.733915][ T12] save_stack+0x1b/0x80
+[ 272.738067][ T12] __kasan_slab_free+0x130/0x180
+[ 272.742997][ T12] kfree+0xe4/0x2f0
+[ 272.746804][ T12] iowarrior_release+0x187/0x280
+[ 272.751735][ T12] __fput+0x2d7/0x840
+[ 272.755711][ T12] task_work_run+0x13f/0x1c0
+[ 272.760297][ T12] exit_to_usermode_loop+0x1d2/0x200
+[ 272.765575][ T12] do_syscall_64+0x45f/0x580
+[ 272.770163][ T12] entry_SYSCALL_64_after_hwframe+0x49/0xbe
+[ 272.776040][ T12]
+[ 272.778367][ T12] The buggy address belongs to the object at ffff8881d1b97900
+[ 272.778367][ T12] which belongs to the cache kmalloc-512 of size 512
+[ 272.792413][ T12] The buggy address is located 72 bytes inside of
+[ 272.792413][ T12] 512-byte region [ffff8881d1b97900, ffff8881d1b97b00)
+[ 272.805591][ T12] The buggy address belongs to the page:
+[ 272.811215][ T12] page:ffffea000746e580 refcount:1 mapcount:0 mapping:ffff8881da002500 index:0x0 compound_mapcount: 0
+[ 272.822141][ T12] flags: 0x200000000010200(slab|head)
+[ 272.827513][ T12] raw: 0200000000010200 ffffea00072f9680 0000000400000004 ffff8881da002500
+[ 272.836095][ T12] raw: 0000000000000000 00000000000c000c 00000001ffffffff 0000000000000000
+[ 272.844663][ T12] page dumped because: kasan: bad access detected
+[ 272.851062][ T12]
+[ 272.853381][ T12] Memory state around the buggy address:
+[ 272.859008][ T12] ffff8881d1b97800: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 272.867065][ T12] ffff8881d1b97880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
+[ 272.875123][ T12] >ffff8881d1b97900: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 272.883175][ T12] ^
+[ 272.889587][ T12] ffff8881d1b97980: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 272.897682][ T12] ffff8881d1b97a00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 272.899562][ T83] usb 5-1: USB disconnect, device number 30
+[ 272.905743][ T12] ==================================================================
diff --git a/pkg/report/testdata/linux/report/414 b/pkg/report/testdata/linux/report/414
new file mode 100644
index 000000000..87bd868f8
--- /dev/null
+++ b/pkg/report/testdata/linux/report/414
@@ -0,0 +1,111 @@
+TITLE: KASAN: use-after-free Write in iowarrior_disconnect
+
+[ 72.512165][ T17] ==================================================================
+[ 72.520532][ T17] BUG: KASAN: use-after-free in usb_kill_urb+0x18f/0x2c0
+[ 72.527601][ T17] Write of size 4 at addr ffff8881d586ca14 by task kworker/1:0/17
+[ 72.535386][ T17]
+[ 72.537703][ T17] CPU: 1 PID: 17 Comm: kworker/1:0 Not tainted 5.3.0-rc5+ #28
+[ 72.545140][ T17] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 72.555187][ T17] Workqueue: usb_hub_wq hub_event
+[ 72.560191][ T17] Call Trace:
+[ 72.563470][ T17] dump_stack+0xca/0x13e
+[ 72.567758][ T17] ? usb_kill_urb+0x18f/0x2c0
+[ 72.572512][ T17] ? usb_kill_urb+0x18f/0x2c0
+[ 72.577185][ T17] print_address_description+0x6a/0x32c
+[ 72.582980][ T17] ? usb_kill_urb+0x18f/0x2c0
+[ 72.587638][ T17] ? usb_kill_urb+0x18f/0x2c0
+[ 72.592301][ T17] __kasan_report.cold+0x1a/0x33
+[ 72.597239][ T17] ? mark_held_locks+0x21/0xe0
+[ 72.601990][ T17] ? usb_kill_urb+0x18f/0x2c0
+[ 72.606646][ T17] kasan_report+0xe/0x12
+[ 72.610887][ T17] check_memory_region+0x128/0x190
+[ 72.615983][ T17] usb_kill_urb+0x18f/0x2c0
+[ 72.620467][ T17] ? usb_poison_anchored_urbs+0x150/0x150
+[ 72.626178][ T17] ? __mutex_unlock_slowpath+0x2d6/0x670
+[ 72.631802][ T17] ? wait_for_completion+0x3c0/0x3c0
+[ 72.637112][ T17] ? finish_wait+0x260/0x260
+[ 72.641698][ T17] iowarrior_disconnect+0x176/0x2c0
+[ 72.646913][ T17] usb_unbind_interface+0x1bd/0x8a0
+[ 72.652102][ T17] ? usb_autoresume_device+0x60/0x60
+[ 72.657387][ T17] device_release_driver_internal+0x42f/0x500
+[ 72.663467][ T17] bus_remove_device+0x2dc/0x4a0
+[ 72.668431][ T17] device_del+0x420/0xb10
+[ 72.672845][ T17] ? __device_links_no_driver+0x240/0x240
+[ 72.678549][ T17] ? usb_remove_ep_devs+0x3e/0x80
+[ 72.683643][ T17] ? remove_intf_ep_devs+0x13f/0x1d0
+[ 72.688928][ T17] usb_disable_device+0x211/0x690
+[ 72.693942][ T17] usb_disconnect+0x284/0x8d0
+[ 72.698616][ T17] hub_event+0x1454/0x3640
+[ 72.703025][ T17] ? find_held_lock+0x2d/0x110
+[ 72.707860][ T17] ? mark_held_locks+0xe0/0xe0
+[ 72.712603][ T17] ? hub_port_debounce+0x260/0x260
+[ 72.717694][ T17] process_one_work+0x92b/0x1530
+[ 72.722622][ T17] ? pwq_dec_nr_in_flight+0x310/0x310
+[ 72.728008][ T17] ? do_raw_spin_lock+0x11a/0x280
+[ 72.733032][ T17] worker_thread+0x96/0xe20
+[ 72.737535][ T17] ? process_one_work+0x1530/0x1530
+[ 72.742723][ T17] kthread+0x318/0x420
+[ 72.746810][ T17] ? kthread_create_on_node+0xf0/0xf0
+[ 72.752171][ T17] ret_from_fork+0x24/0x30
+[ 72.756563][ T17]
+[ 72.758870][ T17] Allocated by task 2767:
+[ 72.763177][ T17] save_stack+0x1b/0x80
+[ 72.767331][ T17] __kasan_kmalloc.constprop.0+0xbf/0xd0
+[ 72.772977][ T17] usb_alloc_urb+0x65/0xb0
+[ 72.777397][ T17] iowarrior_probe+0x4b2/0x10b2
+[ 72.782256][ T17] usb_probe_interface+0x305/0x7a0
+[ 72.787367][ T17] really_probe+0x281/0x6d0
+[ 72.791854][ T17] driver_probe_device+0x101/0x1b0
+[ 72.797034][ T17] __device_attach_driver+0x1c2/0x220
+[ 72.802403][ T17] bus_for_each_drv+0x162/0x1e0
+[ 72.807251][ T17] __device_attach+0x217/0x360
+[ 72.812004][ T17] bus_probe_device+0x1e4/0x290
+[ 72.816832][ T17] device_add+0xae6/0x16f0
+[ 72.821232][ T17] usb_set_configuration+0xdf6/0x1670
+[ 72.826587][ T17] generic_probe+0x9d/0xd5
+[ 72.830981][ T17] usb_probe_device+0x99/0x100
+[ 72.835726][ T17] really_probe+0x281/0x6d0
+[ 72.840470][ T17] driver_probe_device+0x101/0x1b0
+[ 72.845562][ T17] __device_attach_driver+0x1c2/0x220
+[ 72.850914][ T17] bus_for_each_drv+0x162/0x1e0
+[ 72.855746][ T17] __device_attach+0x217/0x360
+[ 72.860613][ T17] bus_probe_device+0x1e4/0x290
+[ 72.865443][ T17] device_add+0xae6/0x16f0
+[ 72.869843][ T17] usb_new_device.cold+0x6a4/0xe79
+[ 72.874936][ T17] hub_event+0x1b5c/0x3640
+[ 72.879365][ T17] process_one_work+0x92b/0x1530
+[ 72.884282][ T17] worker_thread+0x96/0xe20
+[ 72.888780][ T17] kthread+0x318/0x420
+[ 72.892827][ T17] ret_from_fork+0x24/0x30
+[ 72.897220][ T17]
+[ 72.899527][ T17] Freed by task 0:
+[ 72.903585][ T17] save_stack+0x1b/0x80
+[ 72.907811][ T17] __kasan_slab_free+0x130/0x180
+[ 72.912736][ T17] kfree+0xe4/0x2f0
+[ 72.916530][ T17] usb_free_urb.part.0+0x7a/0xc0
+[ 72.921444][ T17] usb_free_urb+0x1b/0x30
+[ 72.925752][ T17] usb_hcd_giveback_urb+0x368/0x420
+[ 72.930927][ T17] dummy_timer+0x120f/0x2fa2
+[ 72.935496][ T17] call_timer_fn+0x179/0x650
+[ 72.940065][ T17] run_timer_softirq+0x5cc/0x14b0
+[ 72.945073][ T17] __do_softirq+0x221/0x912
+[ 72.949548][ T17]
+[ 72.951876][ T17] The buggy address belongs to the object at ffff8881d586ca00
+[ 72.951876][ T17] which belongs to the cache kmalloc-192 of size 192
+[ 72.965914][ T17] The buggy address is located 20 bytes inside of
+[ 72.965914][ T17] 192-byte region [ffff8881d586ca00, ffff8881d586cac0)
+[ 72.979174][ T17] The buggy address belongs to the page:
+[ 72.984790][ T17] page:ffffea0007561b00 refcount:1 mapcount:0 mapping:ffff8881da002a00 index:0x0
+[ 72.993874][ T17] flags: 0x200000000000200(slab)
+[ 72.998796][ T17] raw: 0200000000000200 dead000000000100 dead000000000122 ffff8881da002a00
+[ 73.007359][ T17] raw: 0000000000000000 0000000000100010 00000001ffffffff 0000000000000000
+[ 73.015922][ T17] page dumped because: kasan: bad access detected
+[ 73.022310][ T17]
+[ 73.024614][ T17] Memory state around the buggy address:
+[ 73.030227][ T17] ffff8881d586c900: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 73.038271][ T17] ffff8881d586c980: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
+[ 73.046312][ T17] >ffff8881d586ca00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 73.054353][ T17] ^
+[ 73.058919][ T17] ffff8881d586ca80: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
+[ 73.067044][ T17] ffff8881d586cb00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
+[ 73.075087][ T17] ==================================================================
diff --git a/pkg/report/testdata/linux/report/415 b/pkg/report/testdata/linux/report/415
new file mode 100644
index 000000000..5419527e2
--- /dev/null
+++ b/pkg/report/testdata/linux/report/415
@@ -0,0 +1,54 @@
+TITLE: WARNING: ODEBUG bug in netdev_freemem
+
+[ 3008.116296][T24159] ------------[ cut here ]------------
+[ 3008.121093][ T1807] 8021q: adding VLAN 0 to HW filter on device batadv0
+[ 3008.121995][T24159] ODEBUG: free active (active state 0) object type: timer_list hint: delayed_work_timer_fn+0x0/0x90
+[ 3008.129496][ T1807] kobject: 'vlan0' (00000000b294a58f): kobject_add_internal: parent: 'mesh', set: '<NULL>'
+[ 3008.140532][T24159] WARNING: CPU: 0 PID: 24159 at lib/debugobjects.c:484 debug_check_no_obj_freed+0x464/0x5b0
+[ 3008.140539][T24159] Kernel panic - not syncing: panic_on_warn set ...
+[ 3008.140549][T24159] CPU: 0 PID: 24159 Comm: kworker/u4:4 Not tainted 5.3.0-rc7 #0
+[ 3008.140555][T24159] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
+[ 3008.140587][T24159] Workqueue: netns cleanup_net
+[ 3008.140593][T24159] Call Trace:
+[ 3008.140607][T24159] dump_stack+0x1d8/0x2f8
+[ 3008.140640][T24159] panic+0x25c/0x799
+[ 3008.140656][T24159] __warn+0x22f/0x230
+[ 3008.140673][T24159] report_bug+0x190/0x290
+[ 3008.140728][T24159] do_error_trap+0xd7/0x440
+[ 3008.140739][T24159] do_invalid_op+0x36/0x40
+[ 3008.140756][T24159] invalid_op+0x23/0x30
+[ 3008.140765][T24159] RIP: 0010:debug_check_no_obj_freed+0x464/0x5b0
+[ 3008.140774][T24159] Code: 08 48 89 df e8 7d 96 58 fe 4c 8b 03 48 c7 c7 9e 5d 45 88 48 c7 c6 e4 7f 43 88 4c 89 e2 44 89 f9 4d 89 e9 31 c0 e8 6c 7d f2 fd <0f> 0b 4c 8b 6d a8 ff 05 44 34 6a 05 49 83 c5 30 4c 89 e8 48 c1 e8
+[ 3008.140779][T24159] RSP: 0018:ffff88808b22f900 EFLAGS: 00010046
+[ 3008.140786][T24159] RAX: 6096dfdc67ea2300 RBX: ffffffff888da040 RCX: ffff8880a0206000
+[ 3008.140791][T24159] RDX: 0000000000000000 RSI: 0000000080000000 RDI: 0000000000000000
+[ 3008.140796][T24159] RBP: ffff88808b22f998 R08: ffffffff815cfa14 R09: ffffed1015d440d2
+[ 3008.140801][T24159] R10: ffffed1015d440d2 R11: 0000000000000000 R12: ffffffff884eece1
+[ 3008.140807][T24159] R13: ffffffff814c7770 R14: dffffc0000000000 R15: 0000000000000000
+[ 3008.140926][T24159] kfree+0x107/0x200
+[ 3008.140936][T24159] kvfree+0x47/0x50
+[ 3008.140960][T24159] netdev_freemem+0x3e/0x60
+[ 3008.140997][T24159] netdev_release+0x79/0xa0
+[ 3008.173080][ T1812] kobject: 'ip6gretap0' (0000000011a6ccfe): kobject_add_internal: parent: 'net', set: 'devices'
+[ 3008.175953][T24159] device_release+0x74/0x1a0
+[ 3008.186465][ T1812] kobject: 'ip6gretap0' (0000000011a6ccfe): kobject_uevent_env
+[ 3008.190674][T24159] kobject_cleanup+0x2f7/0x4c0
+[ 3008.190697][T24159] kobject_put+0xad/0xe0
+[ 3008.194348][ T1812] kobject: 'ip6gretap0' (0000000011a6ccfe): fill_kobj_path: path = '/devices/virtual/net/ip6gretap0'
+[ 3008.198640][T24159] netdev_run_todo+0xbff/0xd90
+[ 3008.202707][ T1812] kobject: 'queues' (0000000009d2beab): kobject_add_internal: parent: 'ip6gretap0', set: '<NULL>'
+[ 3008.206803][T24159] rtnl_unlock+0xe/0x10
+[ 3008.211178][ T1812] kobject: 'queues' (0000000009d2beab): kobject_uevent_env
+[ 3008.216497][T24159] default_device_exit_batch+0x65e/0x6a0
+[ 3008.220929][ T1812] kobject: 'queues' (0000000009d2beab): kobject_uevent_env: filter function caused the event to drop!
+[ 3008.231253][ T1812] kobject: 'rx-0' (000000002e64dd06): kobject_add_internal: parent: 'queues', set: 'queues'
+[ 3008.242358][ T1812] kobject: 'rx-0' (000000002e64dd06): kobject_uevent_env
+[ 3008.245329][T24159] cleanup_net+0x70b/0xaa0
+[ 3008.245342][T24159] process_one_work+0x7ef/0x10e0
+[ 3008.245358][T24159] worker_thread+0xc01/0x1630
+[ 3008.245473][T24159] kthread+0x332/0x350
+[ 3008.252375][ T1812] kobject: 'rx-0' (000000002e64dd06): fill_kobj_path: path = '/devices/virtual/net/ip6gretap0/queues/rx-0'
+[ 3008.271382][T24159] ret_from_fork+0x24/0x30
+[ 3008.272950][T24159] Kernel Offset: disabled
+[ 3008.525434][T24159] Rebooting in 86400 seconds..
+
diff --git a/pkg/report/testdata/openbsd/report/16 b/pkg/report/testdata/openbsd/report/16
new file mode 100644
index 000000000..6303f0696
--- /dev/null
+++ b/pkg/report/testdata/openbsd/report/16
@@ -0,0 +1,317 @@
+TITLE: witness: userret: write
+
+witness: userret: returning with the following locks held:
+exclusive rrwlock inode r = 0 (0xfffffd8068b43e68)
+#0 witness_lock+0x52e
+#1 rw_enter+0x46d
+#2 rrw_enter+0x4f
+#3 VOP_LOCK+0x4b
+#4 vn_write+0x169
+#5 dofilewritev+0x1ac
+#6 sys_write+0x83
+#7 syscall+0x552
+#8 Xsyscall+0x128
+panic: witness_warn
+Stopped at db_enter+0x18: addq $0x8,%rsp
+ TID PID UID PRFLAGS PFLAGS CPU COMMAND
+*127727 4787 32767 0x2010 0x4080000 1 syz-executor.1
+ 397608 24914 73 0x100010 0 0 syslogd
+db_enter() at db_enter+0x18
+panic() at panic+0x15c
+witness_warn(2,0,ffffffff82206990) at witness_warn+0x69e
+userret(ffff800020acec78) at userret+0x36a
+syscall(ffff800024f63420) at syscall+0x44a
+Xsyscall(6,5,c,0,3,c0eb2625010) at Xsyscall+0x128
+end of kernel
+end trace frame: 0xc1166dc17a0, count: 9
+https://www.openbsd.org/ddb.html describes the minimum info required in bug
+reports. Insufficient info makes it difficult to find and fix bugs.
+ddb{1}>
+ddb{1}> set $lines = 0
+ddb{1}> set $maxwidth = 0
+ddb{1}> show panic
+witness_warn
+ddb{1}> trace
+db_enter() at db_enter+0x18
+panic() at panic+0x15c
+witness_warn(2,0,ffffffff82206990) at witness_warn+0x69e
+userret(ffff800020acec78) at userret+0x36a
+syscall(ffff800024f63420) at syscall+0x44a
+Xsyscall(6,5,c,0,3,c0eb2625010) at Xsyscall+0x128
+end of kernel
+end trace frame: 0xc1166dc17a0, count: -6
+ddb{1}> show registers
+rdi 0
+rsi 0x3ffff acpi_pdirpa+0x2be67
+rbp 0xffff800024f63160
+rbx 0xffff800024f63210
+rdx 0x40000 acpi_pdirpa+0x2be68
+rcx 0xffff800021f52000
+rax 0xffff800000a6ebc0
+r8 0xffffffff81e141c3 kprintf+0x173
+r9 0x1
+r10 0x25
+r11 0xb1f19339cedc7a5c
+r12 0x3000000008
+r13 0xffff800024f63170
+r14 0x100
+r15 0x1
+rip 0xffffffff81e136b8 db_enter+0x18
+cs 0x8
+rflags 0x246
+rsp 0xffff800024f63150
+ss 0x10
+db_enter+0x18: addq $0x8,%rsp
+ddb{1}> show proc
+PROC (syz-executor.1) pid=127727 stat=onproc
+ flags process=2010<SUGID,SINGLEUNWIND> proc=4080000<SUSPSINGLE,THREAD>
+ pri=32, usrpri=86, nice=20
+ forw=0xffffffffffffffff, list=0xffff800020ace020,0xffff800020acf8e0
+ process=0xffff800020adc000 user=0xffff800024f5e000, vmspace=0xfffffd807f00ca10
+ estcpu=36, cpticks=5, pctcpu=0.0
+ user=0, sys=5, intr=0
+ddb{1}> ps
+ PID TID PPID UID S FLAGS WAIT COMMAND
+ 50146 384011 93903 32767 2 0x10 syz-executor.0
+ 50146 458774 93903 32767 2 0x4000090 syz-executor.0
+ 50146 443490 93903 32767 3 0x4000010 inode syz-executor.0
+ 4787 150491 90341 32767 4 0x82010 syz-executor.1
+* 4787 127727 90341 32767 7 0x4082010 syz-executor.1
+ 4787 259046 90341 32767 2 0x4082010 syz-executor.1
+ 4787 221006 90341 32767 3 0x4082010 inode syz-executor.1
+ 4787 70544 90341 32767 3 0x4002010 suspend syz-executor.1
+ 93903 390199 66612 32767 3 0x90 nanosleep syz-executor.0
+ 66612 514755 45878 0 3 0x82 wait syz-executor.0
+ 90341 117146 92790 32767 2 0x490 syz-executor.1
+ 92790 129794 45878 0 3 0x82 wait syz-executor.1
+ 16665 437832 0 0 3 0x14200 bored sosplice
+ 45878 439952 24034 0 3 0x82 kqread syz-fuzzer
+ 45878 302097 24034 0 2 0x4000482 syz-fuzzer
+ 45878 447485 24034 0 3 0x4000082 thrsleep syz-fuzzer
+ 45878 401500 24034 0 3 0x4000082 thrsleep syz-fuzzer
+ 45878 429086 24034 0 3 0x4000082 thrsleep syz-fuzzer
+ 45878 441558 24034 0 3 0x4000082 thrsleep syz-fuzzer
+ 45878 32330 24034 0 3 0x4000082 thrsleep syz-fuzzer
+ 45878 297379 24034 0 3 0x4000082 thrsleep syz-fuzzer
+ 45878 240767 24034 0 3 0x4000082 thrsleep syz-fuzzer
+ 45878 291298 24034 0 3 0x4000082 thrsleep syz-fuzzer
+ 24034 483088 21342 0 3 0x10008a pause ksh
+ 21342 45907 10808 0 3 0x92 select sshd
+ 38957 371602 1 0 3 0x100083 ttyin getty
+ 10808 298188 1 0 3 0x80 select sshd
+ 24914 397608 1007 73 7 0x100010 syslogd
+ 1007 452199 1 0 3 0x100082 netio syslogd
+ 24790 439683 1 77 3 0x100090 poll dhclient
+ 54973 346754 1 0 3 0x80 poll dhclient
+ 69706 108630 0 0 2 0x14200 zerothread
+ 64136 271591 0 0 3 0x14200 aiodoned aiodoned
+ 2028 296064 0 0 3 0x14200 syncer update
+ 86492 223421 0 0 3 0x14200 cleaner cleaner
+ 35057 440015 0 0 3 0x14200 reaper reaper
+ 56493 127515 0 0 3 0x14200 pgdaemon pagedaemon
+ 38968 45139 0 0 3 0x14200 bored crynlk
+ 79592 227575 0 0 3 0x14200 bored crypto
+ 32698 41884 0 0 3 0x40014200 acpi0 acpi0
+ 14078 480701 0 0 3 0x40014200 idle1
+ 19658 28196 0 0 3 0x14200 bored softnet
+ 32857 444808 0 0 3 0x14200 bored systqmp
+ 45345 69336 0 0 3 0x14200 bored systq
+ 13516 165843 0 0 3 0x40014200 bored softclock
+ 85557 97343 0 0 3 0x40014200 idle0
+ 55872 214173 0 0 3 0x14200 bored smr
+ 1 266521 0 0 3 0x82 wait init
+ 0 0 -1 0 3 0x10200 scheduler swapper
+ddb{1}> show all locks
+Process 50146 (syz-executor.0) thread 0xffff800020ac18c0 (384011)
+exclusive kernel_lock &kernel_lock r = 1 (0xffffffff8265ab40)
+#0 witness_lock+0x52e
+#1 intr_handler+0x5e
+#2 Xintr_ioapic_edge17_untramp+0x19f
+Process 50146 (syz-executor.0) thread 0xffff800020acea00 (443490)
+exclusive rrwlock inode r = 0 (0xfffffd807ec55b38)
+#0 witness_lock+0x52e
+#1 rw_enter+0x46d
+#2 rrw_enter+0x4f
+#3 VOP_LOCK+0x4b
+#4 vn_lock+0x6e
+#5 vget+0x1c3
+#6 cache_lookup+0x2cf
+#7 ufs_lookup+0x1ad
+#8 VOP_LOOKUP+0x5b
+#9 vfs_lookup+0x7a5
+#10 namei+0x61c
+#11 ptmioctl+0x3af
+#12 VOP_IOCTL+0x88
+#13 vn_ioctl+0xb7
+#14 sys_ioctl+0x5b8
+#15 syscall+0x552
+#16 Xsyscall+0x128
+exclusive rwlock fdlock r = 0 (0xfffffd80686f7bd8)
+#0 witness_lock+0x52e
+#1 ptmioctl+0xe7
+#2 VOP_IOCTL+0x88
+#3 vn_ioctl+0xb7
+#4 sys_ioctl+0x5b8
+#5 syscall+0x552
+#6 Xsyscall+0x128
+Process 4787 (syz-executor.1) thread 0xffff800020acec78 (127727)
+exclusive rrwlock inode r = 0 (0xfffffd8068b43e68)
+#0 witness_lock+0x52e
+#1 rw_enter+0x46d
+#2 rrw_enter+0x4f
+#3 VOP_LOCK+0x4b
+#4 vn_write+0x169
+#5 dofilewritev+0x1ac
+#6 sys_write+0x83
+#7 syscall+0x552
+#8 Xsyscall+0x128
+Process 24914 (syslogd) thread 0xffff800020ac0ee0 (397608)
+exclusive rrwlock inode r = 0 (0xfffffd806eb40098)
+#0 witness_lock+0x52e
+#1 rw_enter+0x46d
+#2 rrw_enter+0x4f
+#3 VOP_LOCK+0x4b
+#4 vn_lock+0x6e
+#5 sys_fsync+0x114
+#6 syscall+0x552
+#7 Xsyscall+0x128
+ddb{1}> show malloc
+ Type InUse MemUse HighUse Limit Requests Type Lim Kern Lim
+ devbuf 9462 6321K 6321K 78643K 11404 0 0
+ pcb 13 8K 8K 78643K 13 0 0
+ rtable 105 3K 3K 78643K 7900 0 0
+ ifaddr 36 14K 15K 78643K 1082 0 0
+ counters 39 33K 33K 78643K 39 0 0
+ ioctlops 0 0K 2K 78643K 436 0 0
+ iov 0 0K 36K 78643K 770 0 0
+ mount 1 1K 1K 78643K 1 0 0
+ vnodes 1215 76K 76K 78643K 5637 0 0
+ UFS quota 1 32K 32K 78643K 1 0 0
+ UFS mount 5 36K 36K 78643K 5 0 0
+ shm 2 1K 5K 78643K 102 0 0
+ VM map 2 1K 1K 78643K 2 0 0
+ sem 12 0K 0K 78643K 975 0 0
+ dirhash 12 2K 2K 78643K 12 0 0
+ ACPI 1808 196K 290K 78643K 12765 0 0
+ file desc 8 25K 33K 78643K 9799 0 0
+ sigio 0 0K 0K 78643K 119 0 0
+ proc 41 38K 70K 78643K 8124 0 0
+ subproc 34 2K 2K 78643K 2941 0 0
+ NFS srvsock 1 0K 0K 78643K 1 0 0
+ NFS daemon 1 16K 16K 78643K 1 0 0
+ ip_moptions 0 0K 0K 78643K 1182 0 0
+ in_multi 33 2K 2K 78643K 2199 0 0
+ ether_multi 1 0K 0K 78643K 52 0 0
+ ISOFS mount 1 32K 32K 78643K 1 0 0
+ MSDOSFS mount 1 16K 16K 78643K 1 0 0
+ ttys 60 265K 265K 78643K 60 0 0
+ exec 0 0K 1K 78643K 2998 0 0
+ pagedep 1 8K 8K 78643K 1 0 0
+ inodedep 1 32K 32K 78643K 1 0 0
+ newblk 1 0K 0K 78643K 1 0 0
+ VM swap 7 26K 26K 78643K 7 0 0
+ UVM amap 112 22K 32K 78643K 33952 0 0
+ UVM aobj 130 4K 4K 78643K 151 0 0
+ memdesc 1 4K 4K 78643K 1 0 0
+ crypto data 1 1K 1K 78643K 1 0 0
+ ip6_options 0 0K 0K 78643K 509 0 0
+ NDP 5 0K 0K 78643K 522 0 0
+ temp 121 3546K 3638K 78643K 43256 0 0
+ kqueue 0 0K 0K 78643K 132 0 0
+ SYN cache 2 16K 16K 78643K 2 0 0
+ddb{1}> show all pools
+Name Size Requests Fail Releases Pgreq Pgrel Npage Hiwat Minpg Maxpg Idle
+arp 64 351 0 345 1 0 1 1 0 8 0
+plcache 128 20 0 0 1 0 1 1 0 8 0
+rtpcb 80 819 0 817 1 0 1 1 0 8 0
+rtentry 112 1929 0 1885 2 0 2 2 0 8 0
+unpcb 120 3870 0 3860 1 0 1 1 0 8 0
+syncache 264 4 0 4 1 1 0 1 0 8 0
+tcpqe 32 4428 0 4428 2 2 0 2 0 8 0
+tcpcb 544 2053 0 2049 1 0 1 1 0 8 0
+ipq 40 11 0 11 7 7 0 1 0 8 0
+ipqe 40 31 0 31 7 7 0 1 0 8 0
+inpcb 280 5055 0 5046 13 12 1 2 0 8 0
+nd6 48 519 0 513 1 0 1 1 0 8 0
+art_heap8 4096 1 0 0 1 0 1 1 0 8 0
+art_heap4 256 7883 0 7688 25 12 13 13 0 8 0
+art_table 32 7884 0 7688 2 0 2 2 0 8 0
+art_node 16 1928 0 1888 1 0 1 1 0 8 0
+sysvmsgpl 40 26 0 18 2 1 1 1 0 8 0
+semapl 112 973 0 963 1 0 1 1 0 8 0
+shmpl 112 149 0 21 5 1 4 4 0 8 0
+dirhash 1024 17 0 0 3 0 3 3 0 8 0
+dino1pl 128 11566 0 10119 48 1 47 47 0 8 0
+ffsino 272 11566 0 10119 97 0 97 97 0 8 0
+nchpl 144 23182 0 21554 61 0 61 61 0 8 0
+uvmvnodes 72 5926 0 0 108 0 108 108 0 8 0
+vnodes 200 5926 0 0 312 0 312 312 0 8 0
+namei 1024 97652 0 97651 2 1 1 1 0 8 0
+percpumem 16 30 0 0 1 0 1 1 0 8 0
+scxspl 192 68137 0 68137 35 34 1 7 0 8 1
+plimitpl 152 1633 0 1624 1 0 1 1 0 8 0
+sigapl 432 9457 0 9441 10 8 2 3 0 8 0
+futexpl 56 84996 0 84996 1 0 1 1 0 8 1
+knotepl 112 5413 0 5394 1 0 1 1 0 8 0
+kqueuepl 104 2347 0 2345 1 0 1 1 0 8 0
+pipepl 112 6084 0 6065 9 8 1 2 0 8 0
+fdescpl 488 9458 0 9441 3 0 3 3 0 8 0
+filepl 152 57889 0 57777 33 28 5 7 0 8 0
+lockfpl 104 1953 0 1953 24 23 1 1 0 8 1
+lockfspl 48 620 0 620 24 23 1 1 0 8 1
+sessionpl 112 188 0 178 1 0 1 1 0 8 0
+pgrppl 48 290 0 280 1 0 1 1 0 8 0
+ucredpl 96 16616 0 16607 1 0 1 1 0 8 0
+zombiepl 144 9441 0 9441 2 1 1 1 0 8 1
+processpl 896 9474 0 9441 4 0 4 4 0 8 0
+procpl 632 25806 0 25758 26 21 5 5 0 8 1
+srpgc 64 342 0 342 31 31 0 1 0 8 0
+sosppl 128 186 0 186 43 42 1 1 0 8 1
+sockpl 384 9910 0 9891 20 17 3 4 0 8 1
+mcl64k 65536 26 0 0 4 1 3 3 0 8 0
+mcl16k 16384 16 0 0 2 0 2 2 0 8 0
+mcl12k 12288 49 0 0 2 0 2 2 0 8 0
+mcl9k 9216 33 0 0 3 1 2 2 0 8 0
+mcl8k 8192 37 0 0 5 2 3 3 0 8 0
+mcl4k 4096 18 0 0 3 0 3 3 0 8 0
+mcl2k2 2112 7 0 0 1 0 1 1 0 8 0
+mcl2k 2048 250 0 0 27 12 15 27 0 8 0
+mtagpl 80 1 0 0 1 0 1 1 0 8 0
+mbufpl 256 819 0 0 16 2 14 16 0 8 0
+bufpl 256 24884 0 17870 439 0 439 439 0 8 0
+anonpl 16 1306709 0 1299708 202 158 44 48 0 124 1
+amapchunkpl 152 79740 0 79646 146 137 9 18 0 158 5
+amappl16 192 58133 0 57737 325 296 29 34 0 8 8
+amappl15 184 1571 0 1571 17 17 0 1 0 8 0
+amappl14 176 2417 0 2413 1 0 1 1 0 8 0
+amappl13 168 2045 0 2042 18 17 1 1 0 8 0
+amappl12 160 652 0 650 6 5 1 1 0 8 0
+amappl11 152 1383 0 1366 1 0 1 1 0 8 0
+amappl10 144 1106 0 1105 1 0 1 1 0 8 0
+amappl9 136 3928 0 3925 1 0 1 1 0 8 0
+amappl8 128 3117 0 3075 3 1 2 2 0 8 0
+amappl7 120 1431 0 1421 1 0 1 1 0 8 0
+amappl6 112 969 0 958 1 0 1 1 0 8 0
+amappl5 104 1951 0 1938 1 0 1 1 0 8 0
+amappl4 96 9732 0 9701 1 0 1 1 0 8 0
+amappl3 88 2597 0 2587 1 0 1 1 0 8 0
+amappl2 80 62851 0 62775 3 1 2 3 0 8 0
+amappl1 72 262376 0 261899 23 13 10 19 0 8 0
+amappl 80 28900 0 28860 1 0 1 1 0 84 0
+dma4096 4096 1 0 1 1 1 0 1 0 8 0
+dma256 256 6 0 6 1 1 0 1 0 8 0
+dma64 64 259 0 259 1 1 0 1 0 8 0
+dma32 32 7 0 7 1 1 0 1 0 8 0
+dma16 16 17 0 17 1 1 0 1 0 8 0
+aobjpl 64 150 0 21 3 0 3 3 0 8 0
+uaddrrnd 24 9458 0 9441 1 0 1 1 0 8 0
+uaddrbest 32 2 0 0 1 0 1 1 0 8 0
+uaddr 24 9458 0 9441 1 0 1 1 0 8 0
+vmmpekpl 168 80680 0 80647 2 0 2 2 0 8 0
+vmmpepl 168 1232948 0 1231203 332 246 86 95 0 357 10
+vmsppl 368 9457 0 9441 2 0 2 2 0 8 0
+pdppl 4096 18923 0 18882 6 0 6 6 0 8 0
+pvpl 32 3134188 0 3123771 567 449 118 131 0 265 18
+pmappl 232 9457 0 9441 18 17 1 2 0 8 0
+extentpl 40 41 0 26 1 0 1 1 0 8 0
+phpool 112 635 0 32 18 0 18 18 0 8 0
diff --git a/prog/analysis.go b/prog/analysis.go
index 383ba15d1..f8330ed1c 100644
--- a/prog/analysis.go
+++ b/prog/analysis.go
@@ -15,6 +15,7 @@ import (
type state struct {
target *Target
ct *ChoiceTable
+ corpus []*Prog
files map[string]bool
resources map[string][]*ResultArg
strings map[string]bool
@@ -23,8 +24,8 @@ type state struct {
}
// analyze analyzes the program p up to but not including call c.
-func analyze(ct *ChoiceTable, p *Prog, c *Call) *state {
- s := newState(p.Target, ct)
+func analyze(ct *ChoiceTable, corpus []*Prog, p *Prog, c *Call) *state {
+ s := newState(p.Target, ct, corpus)
resources := true
for _, c1 := range p.Calls {
if c1 == c {
@@ -35,10 +36,11 @@ func analyze(ct *ChoiceTable, p *Prog, c *Call) *state {
return s
}
-func newState(target *Target, ct *ChoiceTable) *state {
+func newState(target *Target, ct *ChoiceTable, corpus []*Prog) *state {
s := &state{
target: target,
ct: ct,
+ corpus: corpus,
files: make(map[string]bool),
resources: make(map[string][]*ResultArg),
strings: make(map[string]bool),
diff --git a/prog/any_test.go b/prog/any_test.go
index 19a32d060..4e162258c 100644
--- a/prog/any_test.go
+++ b/prog/any_test.go
@@ -20,7 +20,7 @@ func TestIsComplexPtr(t *testing.T) {
compl := make(map[string]bool)
for _, meta := range target.Syscalls {
for i := 0; i < iters; i++ {
- s := newState(target, nil)
+ s := newState(target, nil, nil)
calls := r.generateParticularCall(s, meta)
p := &Prog{Target: target, Calls: calls}
for _, arg := range p.complexPtrs() {
diff --git a/prog/decl_test.go b/prog/decl_test.go
index bf6bec4d1..f999ae589 100644
--- a/prog/decl_test.go
+++ b/prog/decl_test.go
@@ -15,7 +15,7 @@ func TestResourceCtors(t *testing.T) {
testEachTarget(t, func(t *testing.T, target *Target) {
expectFail := false
for _, res := range target.Resources {
- if len(target.calcResourceCtors(res.Kind, true)) == 0 != expectFail {
+ if len(target.calcResourceCtors(res, true)) == 0 != expectFail {
t.Errorf("resource %v can't be created", res.Name)
}
}
diff --git a/prog/encoding.go b/prog/encoding.go
index eb0fb79a9..904a3e11b 100644
--- a/prog/encoding.go
+++ b/prog/encoding.go
@@ -961,7 +961,7 @@ func (p *parser) auto(arg Arg) Arg {
}
func (p *parser) fixupAutos(prog *Prog) {
- s := analyze(nil, prog, nil)
+ s := analyze(nil, nil, prog, nil)
for _, c := range prog.Calls {
p.target.assignSizesArray(c.Args, p.autos)
ForeachArg(c, func(arg Arg, _ *ArgCtx) {
diff --git a/prog/export_test.go b/prog/export_test.go
index 1aaea30dc..9ea3f612e 100644
--- a/prog/export_test.go
+++ b/prog/export_test.go
@@ -89,3 +89,14 @@ func testEachTargetRandom(t *testing.T, fn func(t *testing.T, target *Target, rs
})
}
}
+
+func initBench(b *testing.B) (*Target, func()) {
+ olddebug := debug
+ debug = false
+ target, err := GetTarget("linux", "amd64")
+ if err != nil {
+ b.Fatal(err)
+ }
+ b.ReportAllocs()
+ return target, func() { debug = olddebug }
+}
diff --git a/prog/generation.go b/prog/generation.go
index df31f0271..dcb8dc2ac 100644
--- a/prog/generation.go
+++ b/prog/generation.go
@@ -14,7 +14,7 @@ func (target *Target) Generate(rs rand.Source, ncalls int, ct *ChoiceTable) *Pro
Target: target,
}
r := newRand(target, rs)
- s := newState(target, ct)
+ s := newState(target, ct, nil)
for len(p.Calls) < ncalls {
calls := r.generateCall(s, p)
for _, c := range calls {
diff --git a/prog/hints_test.go b/prog/hints_test.go
index 67a250431..78b86e57c 100644
--- a/prog/hints_test.go
+++ b/prog/hints_test.go
@@ -480,13 +480,8 @@ func TestHintsData(t *testing.T) {
}
func BenchmarkHints(b *testing.B) {
- olddebug := debug
- debug = false
- defer func() { debug = olddebug }()
- target, err := GetTarget("linux", "amd64")
- if err != nil {
- b.Fatal(err)
- }
+ target, cleanup := initBench(b)
+ defer cleanup()
rs := rand.NewSource(0)
r := newRand(target, rs)
p := target.Generate(rs, 30, nil)
diff --git a/prog/mutation.go b/prog/mutation.go
index dbb605041..1031217b4 100644
--- a/prog/mutation.go
+++ b/prog/mutation.go
@@ -5,7 +5,9 @@ package prog
import (
"fmt"
+ "math"
"math/rand"
+ "sort"
"unsafe"
)
@@ -112,7 +114,7 @@ func (ctx *mutator) squashAny() bool {
arg.data = mutateData(r, arg.Data(), 0, maxBlobLen)
// Update base pointer if size has increased.
if baseSize < base.Res.Size() {
- s := analyze(ctx.ct, p, p.Calls[0])
+ s := analyze(ctx.ct, ctx.corpus, p, p.Calls[0])
newArg := r.allocAddr(s, base.Type(), base.Res.Size(), base.Res)
*base = *newArg
}
@@ -131,8 +133,9 @@ func (ctx *mutator) insertCall() bool {
if idx < len(p.Calls) {
c = p.Calls[idx]
}
- s := analyze(ctx.ct, p, c)
+ s := analyze(ctx.ct, ctx.corpus, p, c)
calls := r.generateCall(s, p)
+ // TODO: the program might have more than ncalls
p.insertBefore(c, calls)
return true
}
@@ -154,11 +157,12 @@ func (ctx *mutator) mutateArg() bool {
if len(p.Calls) == 0 {
return false
}
- c := p.Calls[r.Intn(len(p.Calls))]
- if len(c.Args) == 0 {
+
+ c, ok := chooseCall(p, r)
+ if !ok {
return false
}
- s := analyze(ctx.ct, p, c)
+ s := analyze(ctx.ct, ctx.corpus, p, c)
updateSizes := true
for stop, ok := false, false; !stop; stop = ok && r.oneOf(3) {
ok = true
@@ -167,8 +171,8 @@ func (ctx *mutator) mutateArg() bool {
if len(ma.args) == 0 {
return false
}
- idx := r.Intn(len(ma.args))
- arg, ctx := ma.args[idx], ma.ctxes[idx]
+ chosenIdx := randomChoice(ma.priorities, r)
+ arg, ctx := ma.args[chosenIdx], ma.ctxes[chosenIdx]
calls, ok1 := p.Target.mutateArg(r, s, arg, ctx, &updateSizes)
if !ok1 {
ok = false
@@ -183,6 +187,43 @@ func (ctx *mutator) mutateArg() bool {
return true
}
+// Select a call based on the complexity of the arguments.
+func chooseCall(p *Prog, r *randGen) (*Call, bool) {
+ var callPriorities []float64
+ noArgs := true
+
+ for _, c := range p.Calls {
+ totalPrio := float64(0)
+ ForeachArg(c, func(arg Arg, ctx *ArgCtx) {
+ prio, stopRecursion := arg.Type().getMutationPrio(p.Target, arg, false)
+ totalPrio += prio
+ ctx.Stop = stopRecursion
+ })
+ callPriorities = append(callPriorities, totalPrio)
+ if len(c.Args) > 0 {
+ noArgs = false
+ }
+ }
+
+ // Calls without arguments.
+ if noArgs {
+ return nil, false
+ }
+
+ return p.Calls[randomChoice(callPriorities, r)], true
+}
+
+// Generate a random index from a given 1-D array of priorities.
+func randomChoice(priorities []float64, r *randGen) int {
+ sum := float64(0)
+ probs := make([]float64, len(priorities))
+ for i, prio := range priorities {
+ sum += prio
+ probs[i] = sum
+ }
+ return sort.SearchFloat64s(probs, sum*r.Float64())
+}
+
func (target *Target) mutateArg(r *randGen, s *state, arg Arg, ctx ArgCtx, updateSizes *bool) ([]*Call, bool) {
var baseSize uint64
if ctx.Base != nil {
@@ -234,7 +275,11 @@ func (t *IntType) mutate(r *randGen, s *state, arg Arg, ctx ArgCtx) (calls []*Ca
}
func (t *FlagsType) mutate(r *randGen, s *state, arg Arg, ctx ArgCtx) (calls []*Call, retry, preserve bool) {
- return mutateInt(r, s, arg)
+ a := arg.(*ConstArg)
+ for oldVal := a.Val; oldVal == a.Val; {
+ a.Val = r.flags(t.Vals, t.BitMask, a.Val)
+ }
+ return
}
func (t *LenType) mutate(r *randGen, s *state, arg Arg, ctx ArgCtx) (calls []*Call, retry, preserve bool) {
@@ -395,49 +440,149 @@ type mutationArgs struct {
target *Target
args []Arg
ctxes []ArgCtx
+ priorities []float64
ignoreSpecial bool
}
+const (
+ maxPriority = float64(10)
+ minPriority = float64(1)
+ dontMutate = float64(0)
+)
+
func (ma *mutationArgs) collectArg(arg Arg, ctx *ArgCtx) {
ignoreSpecial := ma.ignoreSpecial
ma.ignoreSpecial = false
- switch typ := arg.Type().(type) {
- case *StructType:
- if ma.target.SpecialTypes[typ.Name()] == nil || ignoreSpecial {
- return // For structs only individual fields are updated.
- }
- // These special structs are mutated as a whole.
- ctx.Stop = true
- case *UnionType:
- if ma.target.SpecialTypes[typ.Name()] == nil && len(typ.Fields) == 1 || ignoreSpecial {
- return
- }
- ctx.Stop = true
- case *ArrayType:
- // Don't mutate fixed-size arrays.
- if typ.Kind == ArrayRangeLen && typ.RangeBegin == typ.RangeEnd {
- return
- }
- case *CsumType:
- return // Checksum is updated when the checksummed data changes.
- case *ConstType:
- return // Well, this is const.
- case *BufferType:
- if typ.Kind == BufferString && len(typ.Values) == 1 {
- return // string const
- }
- case *PtrType:
- if arg.(*PointerArg).IsSpecial() {
- // TODO: we ought to mutate this, but we don't have code for this yet.
- return
- }
- }
+
typ := arg.Type()
- if typ == nil || typ.Dir() == DirOut || !typ.Varlen() && typ.Size() == 0 {
+ prio, stopRecursion := typ.getMutationPrio(ma.target, arg, ignoreSpecial)
+ ctx.Stop = stopRecursion
+
+ if prio == dontMutate {
+ return
+ }
+
+ if typ.Dir() == DirOut || !typ.Varlen() && typ.Size() == 0 {
return
}
+
ma.args = append(ma.args, arg)
ma.ctxes = append(ma.ctxes, *ctx)
+ ma.priorities = append(ma.priorities, prio)
+}
+
+// TODO: find a way to estimate optimal priority values.
+// Assign a priority for each type. The boolean is the reference type and it has
+// the minimum priority, since it has only two possible values.
+func (t *IntType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ // For a integer without a range of values, the priority is based on
+ // the number of bits occupied by the underlying type.
+ plainPrio := math.Log2((float64(t.Size() * 8))) + 0.1*maxPriority
+ if t.Kind != IntRange {
+ return plainPrio, false
+ }
+
+ switch size := t.RangeEnd - t.RangeBegin + 1; {
+ case size <= 15:
+ // For a small range, we assume that it is effectively
+ // similar with FlagsType and we need to try all possible values.
+ prio = rangeSizePrio(size)
+ case size <= 256:
+ // We consider that a relevant range has at most 256
+ // values (the number of values that can be represented on a byte).
+ prio = maxPriority
+ default:
+ // Ranges larger than 256 are equivalent with a plain integer.
+ prio = plainPrio
+ }
+ return prio, false
+}
+
+func (t *StructType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ if target.SpecialTypes[t.Name()] == nil || ignoreSpecial {
+ return dontMutate, false
+ }
+ return maxPriority, true
+}
+
+func (t *UnionType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ if target.SpecialTypes[t.Name()] == nil && len(t.Fields) == 1 || ignoreSpecial {
+ return dontMutate, false
+ }
+ // For a non-special type union with more than one option
+ // we mutate the union itself and also the value of the current option.
+ if target.SpecialTypes[t.Name()] == nil {
+ return maxPriority, false
+ }
+ return maxPriority, true
+}
+
+func (t *FlagsType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ prio = rangeSizePrio(uint64(len(t.Vals)))
+ if t.BitMask {
+ // We want a higher priority because the mutation will include
+ // more possible operations (bitwise operations).
+ prio += 0.1 * maxPriority
+ }
+ return prio, false
+}
+
+// Assigns a priority based on the range size.
+func rangeSizePrio(size uint64) (prio float64) {
+ switch size {
+ case 0:
+ prio = dontMutate
+ case 1:
+ prio = minPriority
+ default:
+ // Priority proportional with the number of values. After a threshold, the priority is constant.
+ // The threshold is 15 because most of the calls have <= 15 possible values for a flag.
+ prio = math.Min(float64(size)/3+0.4*maxPriority, 0.9*maxPriority)
+ }
+ return prio
+}
+
+func (t *PtrType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ if arg.(*PointerArg).IsSpecial() {
+ // TODO: we ought to mutate this, but we don't have code for this yet.
+ return dontMutate, false
+ }
+ return 0.3 * maxPriority, false
+}
+
+func (t *ConstType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ return dontMutate, false
+}
+
+func (t *CsumType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ return dontMutate, false
+}
+
+func (t *ProcType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ return 0.5 * maxPriority, false
+}
+
+func (t *ResourceType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ return 0.5 * maxPriority, false
+}
+
+func (t *VmaType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ return 0.5 * maxPriority, false
+}
+
+func (t *LenType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ return 0.6 * maxPriority, false
+}
+
+func (t *BufferType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ return 0.8 * maxPriority, false
+}
+
+func (t *ArrayType) getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool) {
+ if t.Kind == ArrayRangeLen && t.RangeBegin == t.RangeEnd {
+ return dontMutate, false
+ }
+ return maxPriority, false
}
func mutateData(r *randGen, data []byte, minLen, maxLen uint64) []byte {
diff --git a/prog/mutation_test.go b/prog/mutation_test.go
index 100820dd7..9ae807e0a 100644
--- a/prog/mutation_test.go
+++ b/prog/mutation_test.go
@@ -6,11 +6,184 @@ package prog
import (
"bytes"
"fmt"
+ "math"
"math/rand"
"sync"
"testing"
)
+func TestMutationFlags(t *testing.T) {
+ tests := [][2]string{
+ // Mutate flags (bitmask = true).
+ {
+ `r0 = mutate$flags(&(0x7f0000000000)="2e2f66696c653000", 0x0, 0x1, 0x1)`,
+ `r0 = mutate$flags(&(0x7f0000000000)="2e2f66696c653000", 0x20, 0x1, 0x9)`,
+ },
+ {
+ `r0 = mutate$flags2(&(0x7f0000000000)="2e2f66696c653000", 0x0)`,
+ `r0 = mutate$flags2(&(0x7f0000000000)="2e2f66696c653000", 0xd9)`,
+ },
+ // Mutate flags (bitmask = false).
+ {
+ `r0 = mutate$flags3(&(0x7f0000000000)="2e2f66696c653000", 0x0)`,
+ `r0 = mutate$flags3(&(0x7f0000000000)="2e2f66696c653000", 0xddddddddeeeeeeee)`,
+ },
+ {
+ `r0 = mutate$flags3(&(0x7f0000000000)="2e2f66696c653000", 0xddddddddeeeeeeee)`,
+ `r0 = mutate$flags3(&(0x7f0000000000)="2e2f66696c653000", 0xaaaaaaaaaaaaaaaa)`,
+ },
+ }
+ runMutationTests(t, tests)
+}
+
+func TestChooseCall(t *testing.T) {
+ tests := [][2]string{
+ // The call with many arguments has a higher mutation probability.
+ {
+ `mutate0()
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)
+mutate$integer2(0x00, 0x00, 0x20, 0x00, 0x01)`,
+ `mutate0()
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0xffffffff)
+mutate$integer2(0x00, 0x00, 0x20, 0x00, 0x01)`,
+ },
+ // Calls with the same probability.
+ {
+ `mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)`,
+ `mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0xff)
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)`,
+ },
+ // The call with a lower probability can be mutated.
+ {
+ `mutate7(&(0x7f0000000000)='123', 0x3)
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)
+r0 = mutate$flags(&(0x7f0000000000)="2e2f66696c653000", 0x0, 0x1, 0x1)`,
+ `mutate7(&(0x7f0000000000)='123', 0x2)
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)
+r0 = mutate$flags(&(0x7f0000000000)="2e2f66696c653000", 0x0, 0x1, 0x1)`,
+ },
+ // Complex arguments.
+ {
+ `test$struct(&(0x7f0000000000)={0x0, {0x0}})
+test$array0(&(0x7f0000001000)={0x1, [@f0=0x2, @f1=0x3], 0x4})
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)`,
+ `test$struct(&(0x7f0000000000)={0xff, {0x0}})
+test$array0(&(0x7f0000001000)={0x1, [@f0=0x2, @f1=0x3], 0x4})
+mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)`,
+ },
+ }
+ runMutationTests(t, tests)
+}
+
+func TestMutateArgument(t *testing.T) {
+ tests := [][2]string{
+ // Mutate an integer with a higher priority than the boolean arguments.
+ {
+ `mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1)`,
+ `mutate$integer(0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0xffffffff)`,
+ },
+ // Mutate a boolean.
+ {
+ `mutate$integer(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)`,
+ `mutate$integer(0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)`,
+ },
+ // Mutate flags (bitmask = true).
+ {
+ `r0 = mutate$flags(&(0x7f0000000000)="2e2f66696c653000", 0x0, 0x1, 0x1)`,
+ `r0 = mutate$flags(&(0x7f0000000000)="2e2f66696c653000", 0x20, 0x1, 0x9)`,
+ },
+ // Mutate an int8 from a set of other arguments with higher priority.
+ {
+ `mutate$integer2(0x00, 0x00, 0x20, 0x00, 0x01)`,
+ `mutate$integer2(0x00, 0x00, 0x20, 0x00, 0x07)`,
+ },
+ // Mutate an array of structs
+ {
+ `mutate$array2(&(0x7f0000000000)=[{0x0}, {0x0}, {0x0}, {0x0}, {0x0}])`,
+ `mutate$array2(&(0x7f0000000000)=[{0x0}, {0x0}, {0x3}, {0x0}, {0x0}])`,
+ },
+ // Mutate a non-special union that have more than 1 option
+ {
+ `mutate$union(&(0x7f0000000000)=@f1=[0x0, 0x1, 0x2, 0x3, 0x0, 0x1, 0x2, 0x3, 0x0, 0x0])`,
+ `mutate$union(&(0x7f0000000000)=@f0=0x2)`,
+ },
+ // Mutate the value of the current option in union
+ {
+ `mutate$union(&(0x7f0000000000)=@f1=[0x0, 0x1, 0x2, 0x3, 0x0, 0x1, 0x2, 0x3, 0x0, 0x0])`,
+ `mutate$union(&(0x7f0000000000)=@f1=[0x0, 0x1, 0xff, 0x3, 0x0, 0x1, 0x2, 0x3, 0x0, 0x0])`,
+ },
+ }
+
+ target := initTargetTest(t, "test", "64")
+ for ti, test := range tests {
+ test := test
+ t.Run(fmt.Sprint(ti), func(t *testing.T) {
+ t.Parallel()
+ rs, ct, p, goal, err := buildTestContext(test, target)
+ if err != nil {
+ t.Fatalf("failed to deserialize the program: %v", err)
+ }
+ want := goal.Serialize()
+ for i := 0; i < 1e5; i++ {
+ p1 := p.Clone()
+ ctx := &mutator{
+ p: p1,
+ r: newRand(p1.Target, rs),
+ ncalls: 0,
+ ct: ct,
+ corpus: nil,
+ }
+ ctx.mutateArg()
+ data1 := p1.Serialize()
+ if bytes.Equal(want, data1) {
+ t.Logf("success on iter %v", i)
+ return
+ }
+ }
+ t.Fatalf("failed to achieve goal, original:%s\ngoal:%s", test[0], test[1])
+ })
+ }
+}
+
+func TestRandomChoice(t *testing.T) {
+ t.Parallel()
+ target, err := GetTarget("test", "64")
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ r := newRand(target, randSource(t))
+ priorities := []float64{1, 1, 1, 1, 1, 1, 1, 1, 2}
+
+ const (
+ maxIters = 100000
+ searchedIdx = 8
+ prob = 0.2
+ eps = 0.01
+ )
+
+ var index, count int
+ for i := 0; i < maxIters; i++ {
+ index = randomChoice(priorities, r)
+
+ if index == searchedIdx {
+ count++
+ }
+ }
+
+ diff := math.Abs(prob*maxIters - float64(count))
+ if diff > eps*maxIters {
+ t.Fatalf("The difference (%f) is higher than %f%%", diff, eps*100)
+ }
+}
+
func TestClone(t *testing.T) {
target, rs, iters := initTest(t)
for i := 0; i < iters; i++ {
@@ -68,7 +241,6 @@ func TestMutateCorpus(t *testing.T) {
}
func TestMutateTable(t *testing.T) {
- target := initTargetTest(t, "test", "64")
tests := [][2]string{
// Insert a call.
{`
@@ -132,6 +304,12 @@ mutate5(&(0x7f0000001000)="2e2f66696c653000", 0x22c0)
mutate5(&(0x7f0000001000)="2e2f66696c653000", 0x22c0)
mutate5(&(0x7f0000001000)="2e2f66696c653100", 0x22c0)
`},
+ // Mutate the array.
+ {`
+mutate$array(0x1, 0x30, &(0x7f0000000000)=[0x1, 0x1, 0x1, 0x1, 0x1])
+`, `
+mutate$array(0x1, 0x30, &(0x7f0000000000)=[0x1, 0x1, 0x1, 0x1])
+`},
// Extend an array.
{`
mutate3(&(0x7f0000000000)=[0x1, 0x1], 0x2)
@@ -151,50 +329,13 @@ mutate8(0x2)
mutate8(0xffffffffffffffff)
`},
}
- for ti, test := range tests {
- test := test
- t.Run(fmt.Sprint(ti), func(t *testing.T) {
- t.Parallel()
- p, err := target.Deserialize([]byte(test[0]), Strict)
- if err != nil {
- t.Fatalf("failed to deserialize original program: %v", err)
- }
- goal, err := target.Deserialize([]byte(test[1]), Strict)
- if err != nil {
- t.Fatalf("failed to deserialize goal program: %v", err)
- }
- want := goal.Serialize()
- enabled := make(map[*Syscall]bool)
- for _, c := range p.Calls {
- enabled[c.Meta] = true
- }
- for _, c := range goal.Calls {
- enabled[c.Meta] = true
- }
- ct := target.BuildChoiceTable(nil, enabled)
- rs := rand.NewSource(0)
- for i := 0; i < 1e5; i++ {
- p1 := p.Clone()
- p1.Mutate(rs, len(goal.Calls), ct, nil)
- data1 := p1.Serialize()
- if bytes.Equal(want, data1) {
- t.Logf("success on iter %v", i)
- return
- }
- }
- t.Fatalf("failed to achieve goal, original:%s\ngoal:%s", test[0], test[1])
- })
- }
+
+ runMutationTests(t, tests)
}
func BenchmarkMutate(b *testing.B) {
- olddebug := debug
- debug = false
- defer func() { debug = olddebug }()
- target, err := GetTarget("linux", "amd64")
- if err != nil {
- b.Fatal(err)
- }
+ target, cleanup := initBench(b)
+ defer cleanup()
ct := linuxAmd64ChoiceTable(target)
const progLen = 30
p := target.Generate(rand.NewSource(0), progLen, nil)
@@ -208,13 +349,8 @@ func BenchmarkMutate(b *testing.B) {
}
func BenchmarkGenerate(b *testing.B) {
- olddebug := debug
- debug = false
- defer func() { debug = olddebug }()
- target, err := GetTarget("linux", "amd64")
- if err != nil {
- b.Fatal(err)
- }
+ target, cleanup := initBench(b)
+ defer cleanup()
ct := linuxAmd64ChoiceTable(target)
const progLen = 30
b.ResetTimer()
@@ -237,3 +373,49 @@ func linuxAmd64ChoiceTable(target *Target) *ChoiceTable {
})
return linuxCT
}
+
+func runMutationTests(t *testing.T, tests [][2]string) {
+ target := initTargetTest(t, "test", "64")
+ for ti, test := range tests {
+ test := test
+ t.Run(fmt.Sprint(ti), func(t *testing.T) {
+ t.Parallel()
+ rs, ct, p, goal, err := buildTestContext(test, target)
+ if err != nil {
+ t.Fatalf("failed to deserialize the program: %v", err)
+ }
+ want := goal.Serialize()
+ for i := 0; i < 1e5; i++ {
+ p1 := p.Clone()
+ p1.Mutate(rs, len(goal.Calls), ct, nil)
+ data1 := p1.Serialize()
+ if bytes.Equal(want, data1) {
+ t.Logf("success on iter %v", i)
+ return
+ }
+ }
+ t.Fatalf("failed to achieve goal, original:%s\ngoal:%s", test[0], test[1])
+ })
+ }
+}
+
+func buildTestContext(test [2]string, target *Target) (rs rand.Source, ct *ChoiceTable, p, goal *Prog, err error) {
+ p, err = target.Deserialize([]byte(test[0]), Strict)
+ if err != nil {
+ return
+ }
+ goal, err = target.Deserialize([]byte(test[1]), Strict)
+ if err != nil {
+ return
+ }
+ enabled := make(map[*Syscall]bool)
+ for _, c := range p.Calls {
+ enabled[c.Meta] = true
+ }
+ for _, c := range goal.Calls {
+ enabled[c.Meta] = true
+ }
+ ct = target.BuildChoiceTable(nil, enabled)
+ rs = rand.NewSource(0)
+ return
+}
diff --git a/prog/prog_test.go b/prog/prog_test.go
index 3300eb4da..1605f7991 100644
--- a/prog/prog_test.go
+++ b/prog/prog_test.go
@@ -74,7 +74,7 @@ func TestVmaType(t *testing.T) {
r := newRand(target, rs)
pageSize := target.PageSize
for i := 0; i < iters; i++ {
- s := newState(target, nil)
+ s := newState(target, nil, nil)
calls := r.generateParticularCall(s, meta)
c := calls[len(calls)-1]
if c.Meta.Name != "test$vma0" {
@@ -198,7 +198,7 @@ func TestSpecialStructs(t *testing.T) {
if typ == nil {
t.Fatal("can't find struct description")
}
- g := &Gen{newRand(target, rs), newState(target, nil)}
+ g := &Gen{newRand(target, rs), newState(target, nil, nil)}
for i := 0; i < iters/len(target.SpecialTypes); i++ {
arg, _ := gen(g, typ, nil)
gen(g, typ, arg)
diff --git a/prog/rand.go b/prog/rand.go
index e4164b74a..cbfc960a8 100644
--- a/prog/rand.go
+++ b/prog/rand.go
@@ -137,15 +137,35 @@ func (r *randGen) randPageCount() (n uint64) {
return
}
-func (r *randGen) flags(vv []uint64) (v uint64) {
+// Change a flag value or generate a new one.
+func (r *randGen) flags(vv []uint64, bitmask bool, oldVal uint64) (v uint64) {
+ v = oldVal
+ if r.oneOf(5) {
+ // Ignore the old value sometimes.
+ v = 0
+ }
switch {
- case r.nOutOf(90, 111):
- for stop := false; !stop; stop = r.bin() {
- v |= vv[r.rand(len(vv))]
+ case (bitmask && r.nOutOf(7, 10)) || (!bitmask && r.nOutOf(1, 5)):
+ // Try flipping randomly chosen flags.
+ // Prioritized when bitmask == true.
+ for stop := false; !stop; stop = r.oneOf(3) {
+ flag := vv[r.rand(len(vv))]
+ if r.oneOf(5) {
+ // Try choosing adjacent bit values in case we forgot
+ // to add all relevant flags to the descriptions.
+ if r.bin() {
+ flag >>= 1
+ } else {
+ flag <<= 1
+ }
+ }
+ v ^= flag
}
- case r.nOutOf(10, 21):
+ case (bitmask && r.nOutOf(2, 3)) || (!bitmask && r.nOutOf(7, 8)):
+ // Chose a random flag.
+ // Prioritized when bitmask == false.
v = vv[r.rand(len(vv))]
- case r.nOutOf(10, 11):
+ case r.bin():
v = 0
default:
v = r.rand64()
@@ -300,7 +320,7 @@ func (r *randGen) createResource(s *state, res *ResourceType) (arg Arg, calls []
// Generate one of them.
meta := metas[r.Intn(len(metas))]
calls := r.generateParticularCall(s, meta)
- s1 := newState(r.target, s.ct)
+ s1 := newState(r.target, s.ct, nil)
s1.analyze(calls[len(calls)-1])
// Now see if we have what we want.
var allres []*ResultArg
@@ -478,7 +498,7 @@ func (target *Target) GenerateAllSyzProg(rs rand.Source) *Prog {
Target: target,
}
r := newRand(target, rs)
- s := newState(target, nil)
+ s := newState(target, nil, nil)
handled := make(map[string]bool)
for _, meta := range target.Syscalls {
if !strings.HasPrefix(meta.CallName, "syz_") || handled[meta.CallName] {
@@ -587,7 +607,14 @@ func (r *randGen) generateArgImpl(s *state, typ Type, ignoreSpecial bool) (arg A
func (a *ResourceType) generate(r *randGen, s *state) (arg Arg, calls []*Call) {
switch {
- case r.nOutOf(1000, 1011):
+ case r.nOutOf(2, 5):
+ var res *ResultArg
+ res, calls = resourceCentric(a, s, r)
+ if res == nil {
+ return r.createResource(s, a)
+ }
+ arg = MakeResultArg(a, res, 0)
+ case r.nOutOf(1, 2):
// Get an existing resource.
alltypes := make([][]*ResultArg, 0, len(s.resources))
for _, res1 := range s.resources {
@@ -609,7 +636,7 @@ func (a *ResourceType) generate(r *randGen, s *state) (arg Arg, calls []*Call) {
} else {
arg, calls = r.createResource(s, a)
}
- case r.nOutOf(10, 11):
+ case r.nOutOf(2, 3):
// Create a new resource.
arg, calls = r.createResource(s, a)
default:
@@ -675,7 +702,7 @@ func (a *VmaType) generate(r *randGen, s *state) (arg Arg, calls []*Call) {
}
func (a *FlagsType) generate(r *randGen, s *state) (arg Arg, calls []*Call) {
- return MakeConstArg(a, r.flags(a.Vals)), nil
+ return MakeConstArg(a, r.flags(a.Vals, a.BitMask, 0)), nil
}
func (a *ConstType) generate(r *randGen, s *state) (arg Arg, calls []*Call) {
@@ -752,3 +779,75 @@ func (a *CsumType) generate(r *randGen, s *state) (arg Arg, calls []*Call) {
// Filled at runtime by executor.
return MakeConstArg(a, 0), nil
}
+
+// Finds a compatible resource with the type `t` and the calls that initialize that resource.
+func resourceCentric(t *ResourceType, s *state, r *randGen) (resource *ResultArg, calls []*Call) {
+ var p *Prog
+ for idx := range r.Perm(len(s.corpus)) {
+ p = s.corpus[idx].Clone()
+ resources := getCompatibleResources(p, t.TypeName, r)
+ if len(resources) > 0 {
+ resource = resources[r.Intn(len(resources))]
+ break
+ }
+ }
+
+ // No compatible resource was found.
+ if resource == nil {
+ return nil, nil
+ }
+
+ // Set that stores the resources that appear in the same calls with the selected resource.
+ relatedRes := map[*ResultArg]bool{resource: true}
+
+ // Remove unrelated calls from the program.
+ for idx := len(p.Calls) - 1; idx >= 0; idx-- {
+ includeCall := false
+ var newResources []*ResultArg
+ ForeachArg(p.Calls[idx], func(arg Arg, _ *ArgCtx) {
+ if a, ok := arg.(*ResultArg); ok {
+ if a.Res != nil && !relatedRes[a.Res] {
+ newResources = append(newResources, a.Res)
+ }
+ if relatedRes[a] || relatedRes[a.Res] {
+ includeCall = true
+ }
+ }
+ })
+ if !includeCall {
+ p.removeCall(idx)
+ } else {
+ for _, res := range newResources {
+ relatedRes[res] = true
+ }
+ }
+ }
+
+ // Selects a biased random length of the returned calls (more calls could offer more
+ // interesting programs). The values returned (n = len(calls): n, n-1, ..., 2.
+ biasedLen := 2 + r.biasedRand(len(calls)-1, 10)
+
+ // Removes the references that are not used anymore.
+ for i := biasedLen; i < len(calls); i++ {
+ p.removeCall(i)
+ }
+
+ return resource, p.Calls
+}
+
+func getCompatibleResources(p *Prog, resourceType string, r *randGen) (resources []*ResultArg) {
+ for _, c := range p.Calls {
+ ForeachArg(c, func(arg Arg, _ *ArgCtx) {
+ // Collect only initialized resources (the ones that are already used in other calls).
+ a, ok := arg.(*ResultArg)
+ if !ok || len(a.uses) == 0 || a.typ.Dir() != DirOut {
+ return
+ }
+ if !r.target.isCompatibleResource(resourceType, a.typ.Name()) {
+ return
+ }
+ resources = append(resources, a)
+ })
+ }
+ return resources
+}
diff --git a/prog/resources.go b/prog/resources.go
index d935beb7a..08002ec27 100644
--- a/prog/resources.go
+++ b/prog/resources.go
@@ -14,33 +14,59 @@ var timespecRes = &ResourceDesc{
Kind: []string{"timespec"},
}
-func (target *Target) calcResourceCtors(kind []string, precise bool) []*Syscall {
- // Find calls that produce the necessary resources.
+func (target *Target) calcResourceCtors(res *ResourceDesc, precise bool) []*Syscall {
var metas []*Syscall
- for _, meta := range target.Syscalls {
- // Recurse into arguments to see if there is an out/inout arg of necessary type.
- ok := false
+ for _, ctor := range res.Ctors {
+ if !precise || ctor.Precise {
+ metas = append(metas, target.Syscalls[ctor.Call])
+ }
+ }
+ if res.Kind[0] == timespecRes.Name {
+ if c := target.SyscallMap["clock_gettime"]; c != nil {
+ metas = append(metas, c)
+ }
+ }
+ return metas
+}
+
+func (target *Target) populateResourceCtors() {
+ // Find resources that are created by each call.
+ callsResources := make([][]*ResourceDesc, len(target.Syscalls))
+ for call, meta := range target.Syscalls {
ForeachType(meta, func(typ Type) {
- if ok {
- return
- }
switch typ1 := typ.(type) {
case *ResourceType:
- if typ1.Dir() != DirIn && isCompatibleResourceImpl(kind, typ1.Desc.Kind, precise) {
- ok = true
+ if typ1.Dir() != DirIn {
+ callsResources[call] = append(callsResources[call], typ1.Desc)
}
}
})
- if ok {
- metas = append(metas, meta)
- }
}
- if kind[0] == timespecRes.Name {
- if c := target.SyscallMap["clock_gettime"]; c != nil {
- metas = append(metas, c)
+
+ // Populate resource ctors accounting for resource compatibility.
+ for _, res := range target.Resources {
+ for call, callResources := range callsResources {
+ preciseOk := false
+ impreciseOk := false
+ for _, callRes := range callResources {
+ if preciseOk && impreciseOk {
+ break
+ }
+ if isCompatibleResourceImpl(res.Kind, callRes.Kind, true) {
+ preciseOk = true
+ }
+ if isCompatibleResourceImpl(res.Kind, callRes.Kind, false) {
+ impreciseOk = true
+ }
+ }
+ if preciseOk {
+ res.Ctors = append(res.Ctors, ResourceCtor{call, true})
+ }
+ if impreciseOk {
+ res.Ctors = append(res.Ctors, ResourceCtor{call, false})
+ }
}
}
- return metas
}
// isCompatibleResource returns true if resource of kind src can be passed as an argument of kind dst.
@@ -172,7 +198,7 @@ func (target *Target) TransitivelyEnabledCalls(enabled map[*Syscall]bool) (map[*
}
if ctors[res.Name] == nil {
var names []string
- for _, call := range target.calcResourceCtors(res.Kind, true) {
+ for _, call := range target.calcResourceCtors(res, true) {
names = append(names, call.Name)
}
ctors[res.Name] = names
diff --git a/prog/target.go b/prog/target.go
index da9b3255c..d02a3dd37 100644
--- a/prog/target.go
+++ b/prog/target.go
@@ -168,9 +168,10 @@ func (target *Target) initTarget() {
})
}
+ target.populateResourceCtors()
target.resourceCtors = make(map[string][]*Syscall)
for _, res := range target.Resources {
- target.resourceCtors[res.Name] = target.calcResourceCtors(res.Kind, false)
+ target.resourceCtors[res.Name] = target.calcResourceCtors(res, false)
}
initAnyTypes(target)
}
diff --git a/prog/types.go b/prog/types.go
index 7f9569483..9a58a9eee 100644
--- a/prog/types.go
+++ b/prog/types.go
@@ -65,6 +65,7 @@ type Type interface {
isDefaultArg(arg Arg) bool
generate(r *randGen, s *state) (arg Arg, calls []*Call)
mutate(r *randGen, s *state, arg Arg, ctx ArgCtx) (calls []*Call, retry, preserve bool)
+ getMutationPrio(target *Target, arg Arg, ignoreSpecial bool) (prio float64, stopRecursion bool)
minimize(ctx *minimizeArgsCtx, arg Arg, path string) bool
}
@@ -132,6 +133,12 @@ type ResourceDesc struct {
Type Type
Kind []string
Values []uint64
+ Ctors []ResourceCtor
+}
+
+type ResourceCtor struct {
+ Call int // Index in Target.Syscalls
+ Precise bool
}
type ResourceType struct {
diff --git a/sys/fuchsia/fuchsia_cobalt.syz.txt b/sys/fuchsia/fuchsia_cobalt.syz.txt
index ecdbdd84e..e42c4532f 100644
--- a/sys/fuchsia/fuchsia_cobalt.syz.txt
+++ b/sys/fuchsia/fuchsia_cobalt.syz.txt
@@ -802,8 +802,10 @@ fuchsia_cobalt_ControllerGetNumObservationsAddedResponseHandles {
} [packed]
fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequest {
- hdr fidl_message_header[1523993550]
- day_index int32
+ hdr fidl_message_header[1523993550]
+ day_index int32
+ report_idsInLine fidl_vector
+ report_idsOutOfLine array[int32]
} [packed]
fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequestHandles {
diff --git a/sys/fuchsia/fuchsia_net.syz.txt b/sys/fuchsia/fuchsia_net.syz.txt
index c5cd4dc3a..1e03809f8 100644
--- a/sys/fuchsia/fuchsia_net.syz.txt
+++ b/sys/fuchsia/fuchsia_net.syz.txt
@@ -150,21 +150,6 @@ fdio_service_connect$fuchsia_net_NameLookup(path ptr[in, string["/svc/fuchsia.ne
zx_channel_call$fuchsia_net_NameLookupLookupIp(handle zx_chan_fuchsia_net_NameLookup_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_NameLookupLookupIpRequest, fuchsia_net_NameLookupLookupIpRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_NameLookupLookupIpResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_net_NameLookupLookupHostname(handle zx_chan_fuchsia_net_NameLookup_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_NameLookupLookupHostnameRequest, fuchsia_net_NameLookupLookupHostnameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_NameLookupLookupHostnameResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-fuchsia_net_SocketProviderSocketRequest {
- hdr fidl_message_header[316444173]
- domain int16
- type_ int16
- protocol int16
-} [packed]
-
-fuchsia_net_SocketProviderSocketRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketProviderSocketResponseHandles {
- s zx_socket
-} [packed]
-
fuchsia_net_SocketProviderGetAddrInfoRequest {
hdr fidl_message_header[498796293]
nodeInLine fidl_string
@@ -188,156 +173,4 @@ resource zx_chan_fuchsia_net_SocketProvider_server[zx_chan]
zx_channel_create$fuchsia_net_SocketProvider(options const[0], out0 ptr[out, zx_chan_fuchsia_net_SocketProvider_client], out1 ptr[out, zx_chan_fuchsia_net_SocketProvider_server])
fdio_service_connect$fuchsia_net_SocketProvider(path ptr[in, string["/svc/fuchsia.net.SocketProvider"]], handle zx_chan_fuchsia_net_SocketProvider_server)
-zx_channel_call$fuchsia_net_SocketProviderSocket(handle zx_chan_fuchsia_net_SocketProvider_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketProviderSocketRequest, fuchsia_net_SocketProviderSocketRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderSocketResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
zx_channel_call$fuchsia_net_SocketProviderGetAddrInfo(handle zx_chan_fuchsia_net_SocketProvider_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketProviderGetAddrInfoRequest, fuchsia_net_SocketProviderGetAddrInfoRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderGetAddrInfoResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-
-fuchsia_net_SocketControlBindRequest {
- hdr fidl_message_header[2092731140]
- addrInLine fidl_vector
- addrOutOfLine array[int8]
-} [packed]
-
-fuchsia_net_SocketControlBindRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlBindResponseHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlConnectRequest {
- hdr fidl_message_header[345505709]
- addrInLine fidl_vector
- addrOutOfLine array[int8]
-} [packed]
-
-fuchsia_net_SocketControlConnectRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlConnectResponseHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlListenRequest {
- hdr fidl_message_header[1117818704]
- backlog int16
-} [packed]
-
-fuchsia_net_SocketControlListenRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlListenResponseHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlAcceptRequest {
- hdr fidl_message_header[796734679]
- flags_ int16
-} [packed]
-
-fuchsia_net_SocketControlAcceptRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlAcceptResponseHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlCloseRequest {
- hdr fidl_message_header[506040350]
-} [packed]
-
-fuchsia_net_SocketControlCloseRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlCloseResponseHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlGetSockNameRequest {
- hdr fidl_message_header[764939941]
-} [packed]
-
-fuchsia_net_SocketControlGetSockNameRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlGetSockNameResponseHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlGetPeerNameRequest {
- hdr fidl_message_header[472396488]
-} [packed]
-
-fuchsia_net_SocketControlGetPeerNameRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlGetPeerNameResponseHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlSetSockOptRequest {
- hdr fidl_message_header[1365685084]
- level int16
- optname int16
- optvalInLine fidl_vector
- optvalOutOfLine array[int8]
-} [packed]
-
-fuchsia_net_SocketControlSetSockOptRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlSetSockOptResponseHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlGetSockOptRequest {
- hdr fidl_message_header[2132650507]
- level int16
- optname int16
-} [packed]
-
-fuchsia_net_SocketControlGetSockOptRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlGetSockOptResponseHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlIoctlRequest {
- hdr fidl_message_header[1157859964]
- req int16
- inInLine fidl_vector
- inOutOfLine array[int8]
-} [packed]
-
-fuchsia_net_SocketControlIoctlRequestHandles {
- void void
-} [packed]
-
-fuchsia_net_SocketControlIoctlResponseHandles {
- void void
-} [packed]
-
-resource zx_chan_fuchsia_net_SocketControl_client[zx_chan]
-resource zx_chan_fuchsia_net_SocketControl_server[zx_chan]
-
-zx_channel_create$fuchsia_net_SocketControl(options const[0], out0 ptr[out, zx_chan_fuchsia_net_SocketControl_client], out1 ptr[out, zx_chan_fuchsia_net_SocketControl_server])
-fdio_service_connect$fuchsia_net_SocketControl(path ptr[in, string["/svc/"]], handle zx_chan_fuchsia_net_SocketControl_server)
-zx_channel_call$fuchsia_net_SocketControlBind(handle zx_chan_fuchsia_net_SocketControl_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketControlBindRequest, fuchsia_net_SocketControlBindRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlBindResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-zx_channel_call$fuchsia_net_SocketControlConnect(handle zx_chan_fuchsia_net_SocketControl_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketControlConnectRequest, fuchsia_net_SocketControlConnectRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlConnectResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-zx_channel_call$fuchsia_net_SocketControlListen(handle zx_chan_fuchsia_net_SocketControl_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketControlListenRequest, fuchsia_net_SocketControlListenRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlListenResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-zx_channel_call$fuchsia_net_SocketControlAccept(handle zx_chan_fuchsia_net_SocketControl_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketControlAcceptRequest, fuchsia_net_SocketControlAcceptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlAcceptResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-zx_channel_call$fuchsia_net_SocketControlClose(handle zx_chan_fuchsia_net_SocketControl_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketControlCloseRequest, fuchsia_net_SocketControlCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlCloseResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-zx_channel_call$fuchsia_net_SocketControlGetSockName(handle zx_chan_fuchsia_net_SocketControl_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketControlGetSockNameRequest, fuchsia_net_SocketControlGetSockNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockNameResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-zx_channel_call$fuchsia_net_SocketControlGetPeerName(handle zx_chan_fuchsia_net_SocketControl_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketControlGetPeerNameRequest, fuchsia_net_SocketControlGetPeerNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetPeerNameResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-zx_channel_call$fuchsia_net_SocketControlSetSockOpt(handle zx_chan_fuchsia_net_SocketControl_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketControlSetSockOptRequest, fuchsia_net_SocketControlSetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlSetSockOptResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-zx_channel_call$fuchsia_net_SocketControlGetSockOpt(handle zx_chan_fuchsia_net_SocketControl_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketControlGetSockOptRequest, fuchsia_net_SocketControlGetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockOptResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
-zx_channel_call$fuchsia_net_SocketControlIoctl(handle zx_chan_fuchsia_net_SocketControl_client, options const[0], deadline zx_time, args ptr[in, fidl_call_args[fuchsia_net_SocketControlIoctlRequest, fuchsia_net_SocketControlIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlIoctlResponseHandles]], actual_bytes ptr[out, int32], actual_handles ptr[out, int32])
diff --git a/sys/fuchsia/gen/amd64.go b/sys/fuchsia/gen/amd64.go
index c9d3b8b5d..a81c0ca95 100644
--- a/sys/fuchsia/gen/amd64.go
+++ b/sys/fuchsia/gen/amd64.go
@@ -52,8 +52,6 @@ var resources_amd64 = []*ResourceDesc{
{Name: "zx_chan_fuchsia_net_Connectivity_server", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_Connectivity_server"}, Values: []uint64{0}},
{Name: "zx_chan_fuchsia_net_NameLookup_client", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_NameLookup_client"}, Values: []uint64{0}},
{Name: "zx_chan_fuchsia_net_NameLookup_server", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_NameLookup_server"}, Values: []uint64{0}},
- {Name: "zx_chan_fuchsia_net_SocketControl_client", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_SocketControl_client"}, Values: []uint64{0}},
- {Name: "zx_chan_fuchsia_net_SocketControl_server", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_SocketControl_server"}, Values: []uint64{0}},
{Name: "zx_chan_fuchsia_net_SocketProvider_client", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_SocketProvider_client"}, Values: []uint64{0}},
{Name: "zx_chan_fuchsia_net_SocketProvider_server", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_SocketProvider_server"}, Values: []uint64{0}},
{Name: "zx_chan_fuchsia_net_stack_Stack_client", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_stack_Stack_client"}, Values: []uint64{0}},
@@ -1329,106 +1327,6 @@ var structDescs_amd64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
}}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlAcceptRequest, fuchsia_net_SocketControlAcceptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlAcceptResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlAcceptRequest, fuchsia_net_SocketControlAcceptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlAcceptResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlAcceptRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlAcceptRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlAcceptResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlBindRequest, fuchsia_net_SocketControlBindRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlBindResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlBindRequest, fuchsia_net_SocketControlBindRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlBindResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlBindRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlBindRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlBindResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlCloseRequest, fuchsia_net_SocketControlCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlCloseResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlCloseRequest, fuchsia_net_SocketControlCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlCloseResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlCloseRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlCloseRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlCloseResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlConnectRequest, fuchsia_net_SocketControlConnectRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlConnectResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlConnectRequest, fuchsia_net_SocketControlConnectRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlConnectResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlConnectRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlConnectRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlConnectResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetPeerNameRequest, fuchsia_net_SocketControlGetPeerNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetPeerNameResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlGetPeerNameRequest, fuchsia_net_SocketControlGetPeerNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetPeerNameResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetSockNameRequest, fuchsia_net_SocketControlGetSockNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockNameResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlGetSockNameRequest, fuchsia_net_SocketControlGetSockNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockNameResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetSockOptRequest, fuchsia_net_SocketControlGetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockOptResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlGetSockOptRequest, fuchsia_net_SocketControlGetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockOptResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlIoctlRequest, fuchsia_net_SocketControlIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlIoctlResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlIoctlRequest, fuchsia_net_SocketControlIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlIoctlResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlIoctlRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlIoctlRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlIoctlResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlListenRequest, fuchsia_net_SocketControlListenRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlListenResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlListenRequest, fuchsia_net_SocketControlListenRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlListenResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlListenRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlListenRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlListenResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlSetSockOptRequest, fuchsia_net_SocketControlSetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlSetSockOptResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlSetSockOptRequest, fuchsia_net_SocketControlSetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlSetSockOptResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketProviderGetAddrInfoRequest, fuchsia_net_SocketProviderGetAddrInfoRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderGetAddrInfoResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketProviderGetAddrInfoRequest, fuchsia_net_SocketProviderGetAddrInfoRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderGetAddrInfoResponseHandles]", TypeSize: 48}, Fields: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketProviderGetAddrInfoRequest"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketProviderGetAddrInfoRequestHandles"}}},
@@ -1439,16 +1337,6 @@ var structDescs_amd64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
}}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketProviderSocketRequest, fuchsia_net_SocketProviderSocketRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderSocketResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketProviderSocketRequest, fuchsia_net_SocketProviderSocketRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderSocketResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketProviderSocketRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketProviderSocketRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketProviderSocketResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
{Key: StructKey{Name: "fidl_call_args[fuchsia_net_stack_StackAddEthernetInterfaceRequest, fuchsia_net_stack_StackAddEthernetInterfaceRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_stack_StackAddEthernetInterfaceResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_stack_StackAddEthernetInterfaceRequest, fuchsia_net_stack_StackAddEthernetInterfaceRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_stack_StackAddEthernetInterfaceResponseHandles]", TypeSize: 48}, Fields: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_stack_StackAddEthernetInterfaceRequest"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_stack_StackAddEthernetInterfaceRequestHandles"}}},
@@ -1705,12 +1593,6 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1110617141},
}}},
- {Key: StructKey{Name: "fidl_message_header[1117818704]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1117818704]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1117818704},
- }}},
{Key: StructKey{Name: "fidl_message_header[1118517818]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1118517818]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -1723,12 +1605,6 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1119663833},
}}},
- {Key: StructKey{Name: "fidl_message_header[1157859964]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1157859964]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1157859964},
- }}},
{Key: StructKey{Name: "fidl_message_header[1166403528]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1166403528]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -1795,12 +1671,6 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1343632858},
}}},
- {Key: StructKey{Name: "fidl_message_header[1365685084]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1365685084]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1365685084},
- }}},
{Key: StructKey{Name: "fidl_message_header[1373297565]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1373297565]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2041,36 +1911,18 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 2087865796},
}}},
- {Key: StructKey{Name: "fidl_message_header[2092731140]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[2092731140]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 2092731140},
- }}},
{Key: StructKey{Name: "fidl_message_header[2120159974]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[2120159974]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 2120159974},
}}},
- {Key: StructKey{Name: "fidl_message_header[2132650507]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[2132650507]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 2132650507},
- }}},
{Key: StructKey{Name: "fidl_message_header[281534132]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[281534132]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 281534132},
}}},
- {Key: StructKey{Name: "fidl_message_header[316444173]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[316444173]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 316444173},
- }}},
{Key: StructKey{Name: "fidl_message_header[324887181]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[324887181]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2089,12 +1941,6 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 343996832},
}}},
- {Key: StructKey{Name: "fidl_message_header[345505709]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[345505709]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 345505709},
- }}},
{Key: StructKey{Name: "fidl_message_header[351572256]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[351572256]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2155,12 +2001,6 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 462052964},
}}},
- {Key: StructKey{Name: "fidl_message_header[472396488]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[472396488]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 472396488},
- }}},
{Key: StructKey{Name: "fidl_message_header[498796293]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[498796293]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2173,12 +2013,6 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 503331302},
}}},
- {Key: StructKey{Name: "fidl_message_header[506040350]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[506040350]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 506040350},
- }}},
{Key: StructKey{Name: "fidl_message_header[523329667]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[523329667]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2317,12 +2151,6 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 759190088},
}}},
- {Key: StructKey{Name: "fidl_message_header[764939941]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[764939941]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 764939941},
- }}},
{Key: StructKey{Name: "fidl_message_header[782580781]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[782580781]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2335,12 +2163,6 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 787943096},
}}},
- {Key: StructKey{Name: "fidl_message_header[796734679]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[796734679]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 796734679},
- }}},
{Key: StructKey{Name: "fidl_message_header[818031436]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[818031436]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2525,9 +2347,11 @@ var structDescs_amd64 = []*KeyedStruct{
{Key: StructKey{Name: "fuchsia_cobalt_ControllerBlockUntilEmptyResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_cobalt_ControllerBlockUntilEmptyResponseHandles", ArgDir: 1}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
}}},
- {Key: StructKey{Name: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequest", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequest", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "fidl_message_header[1523993550]"}, FldName: "hdr"},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "day_index", TypeSize: 4}}},
+ &StructType{Key: StructKey{Name: "fidl_vector"}, FldName: "report_idsInLine"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "report_idsOutOfLine", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}},
}}},
{Key: StructKey{Name: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequestHandles"}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
@@ -4205,111 +4029,6 @@ var structDescs_amd64 = []*KeyedStruct{
{Key: StructKey{Name: "fuchsia_net_NameLookup_LookupIp_ResultHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_NameLookup_LookupIp_ResultHandles", ArgDir: 1, IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "fuchsia_net_NameLookup_LookupIp_ResponseHandles", Dir: 1}, FldName: "response"},
}}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlAcceptRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlAcceptRequest", TypeSize: 18}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[796734679]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "flags_", TypeSize: 2}}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlAcceptRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlAcceptRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlAcceptResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlAcceptResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlBindRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlBindRequest", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[2092731140]"}, FldName: "hdr"},
- &StructType{Key: StructKey{Name: "fidl_vector"}, FldName: "addrInLine"},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "addrOutOfLine", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlBindRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlBindRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlBindResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlBindResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlCloseRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlCloseRequest", TypeSize: 16}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[506040350]"}, FldName: "hdr"},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlCloseRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlCloseRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlCloseResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlCloseResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlConnectRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlConnectRequest", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[345505709]"}, FldName: "hdr"},
- &StructType{Key: StructKey{Name: "fidl_vector"}, FldName: "addrInLine"},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "addrOutOfLine", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlConnectRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlConnectRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlConnectResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlConnectResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetPeerNameRequest", TypeSize: 16}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[472396488]"}, FldName: "hdr"},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetPeerNameRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetPeerNameResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockNameRequest", TypeSize: 16}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[764939941]"}, FldName: "hdr"},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockNameRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockNameResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockOptRequest", TypeSize: 20}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[2132650507]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "level", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "optname", TypeSize: 2}}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockOptRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockOptResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlIoctlRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlIoctlRequest", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[1157859964]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "req", TypeSize: 2}}},
- &StructType{Key: StructKey{Name: "fidl_vector"}, FldName: "inInLine"},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "inOutOfLine", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlIoctlRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlIoctlRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlIoctlResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlIoctlResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlListenRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlListenRequest", TypeSize: 18}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[1117818704]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "backlog", TypeSize: 2}}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlListenRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlListenRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlListenResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlListenResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlSetSockOptRequest", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[1365685084]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "level", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "optname", TypeSize: 2}}},
- &StructType{Key: StructKey{Name: "fidl_vector"}, FldName: "optvalInLine"},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "optvalOutOfLine", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlSetSockOptRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlSetSockOptResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
{Key: StructKey{Name: "fuchsia_net_SocketProviderGetAddrInfoRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketProviderGetAddrInfoRequest", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "fidl_message_header[498796293]"}, FldName: "hdr"},
&StructType{Key: StructKey{Name: "fidl_string"}, FldName: "nodeInLine"},
@@ -4325,18 +4044,6 @@ var structDescs_amd64 = []*KeyedStruct{
{Key: StructKey{Name: "fuchsia_net_SocketProviderGetAddrInfoResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketProviderGetAddrInfoResponseHandles", ArgDir: 1}, Fields: []Type{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "resHandles", ArgDir: 1}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_AddrInfoHandles", Dir: 1}}, Kind: 1, RangeBegin: 4, RangeEnd: 4},
}}},
- {Key: StructKey{Name: "fuchsia_net_SocketProviderSocketRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketProviderSocketRequest", TypeSize: 22}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[316444173]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "domain", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "type_", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "protocol", TypeSize: 2}}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketProviderSocketRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketProviderSocketRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketProviderSocketResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketProviderSocketResponseHandles", TypeSize: 4, ArgDir: 1}, Fields: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "s", TypeSize: 4, ArgDir: 1}},
- }}},
{Key: StructKey{Name: "fuchsia_net_SubnetHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SubnetHandles"}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
}}},
@@ -5096,10 +4803,6 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 28}, Kind: 2, Values: []string{"/svc/fuchsia.net.NameLookup\x00"}}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_NameLookup_server", FldName: "handle", TypeSize: 4}},
}},
- {Name: "fdio_service_connect$fuchsia_net_SocketControl", CallName: "fdio_service_connect", Args: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 6}, Kind: 2, Values: []string{"/svc/\x00"}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_server", FldName: "handle", TypeSize: 4}},
- }},
{Name: "fdio_service_connect$fuchsia_net_SocketProvider", CallName: "fdio_service_connect", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 32}, Kind: 2, Values: []string{"/svc/fuchsia.net.SocketProvider\x00"}}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketProvider_server", FldName: "handle", TypeSize: 4}},
@@ -6317,86 +6020,6 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
}},
- {Name: "zx_channel_call$fuchsia_net_SocketControlAccept", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlAcceptRequest, fuchsia_net_SocketControlAcceptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlAcceptResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlBind", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlBindRequest, fuchsia_net_SocketControlBindRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlBindResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlClose", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlCloseRequest, fuchsia_net_SocketControlCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlCloseResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlConnect", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlConnectRequest, fuchsia_net_SocketControlConnectRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlConnectResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlGetPeerName", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetPeerNameRequest, fuchsia_net_SocketControlGetPeerNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetPeerNameResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlGetSockName", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetSockNameRequest, fuchsia_net_SocketControlGetSockNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockNameResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlGetSockOpt", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetSockOptRequest, fuchsia_net_SocketControlGetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockOptResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlIoctl", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlIoctlRequest, fuchsia_net_SocketControlIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlIoctlResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlListen", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlListenRequest, fuchsia_net_SocketControlListenRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlListenResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlSetSockOpt", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlSetSockOptRequest, fuchsia_net_SocketControlSetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlSetSockOptResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
{Name: "zx_channel_call$fuchsia_net_SocketProviderGetAddrInfo", CallName: "zx_channel_call", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketProvider_client", FldName: "handle", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
@@ -6405,14 +6028,6 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
}},
- {Name: "zx_channel_call$fuchsia_net_SocketProviderSocket", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketProvider_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketProviderSocketRequest, fuchsia_net_SocketProviderSocketRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderSocketResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
{Name: "zx_channel_call$fuchsia_net_stack_StackAddEthernetInterface", CallName: "zx_channel_call", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_stack_Stack_client", FldName: "handle", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
@@ -6679,11 +6294,6 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out0", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_NameLookup_client", TypeSize: 4, ArgDir: 1}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out1", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_NameLookup_server", TypeSize: 4, ArgDir: 1}}},
}},
- {Name: "zx_channel_create$fuchsia_net_SocketControl", CallName: "zx_channel_create", Args: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out0", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", TypeSize: 4, ArgDir: 1}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out1", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_server", TypeSize: 4, ArgDir: 1}}},
- }},
{Name: "zx_channel_create$fuchsia_net_SocketProvider", CallName: "zx_channel_create", Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out0", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketProvider_client", TypeSize: 4, ArgDir: 1}}},
@@ -7345,33 +6955,25 @@ var syscalls_amd64 = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 8}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 8}}},
}},
- {Name: "zx_socket_accept", CallName: "zx_socket_accept", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out_socket", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", TypeSize: 4, ArgDir: 1}}},
- }},
{Name: "zx_socket_create", CallName: "zx_socket_create", Args: []Type{
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_create_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{0, 1, 2}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_create_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{0, 1}, BitMask: true},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out0", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", TypeSize: 4, ArgDir: 1}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out1", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", TypeSize: 4, ArgDir: 1}}},
}},
{Name: "zx_socket_read", CallName: "zx_socket_read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_read_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{4}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_read_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1}, BitMask: true},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buffer", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Path: []string{"buffer"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}},
}},
- {Name: "zx_socket_share", CallName: "zx_socket_share", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "socket_to_share", TypeSize: 4}},
- }},
{Name: "zx_socket_shutdown", CallName: "zx_socket_shutdown", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handlez", TypeSize: 4}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_shutdown_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{2, 1}, BitMask: true},
}},
{Name: "zx_socket_write", CallName: "zx_socket_write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_write_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{4, 2, 1}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_write_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 1}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buffer", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Path: []string{"buffer"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}},
@@ -7734,9 +7336,8 @@ var consts_amd64 = []ConstValue{
{Name: "ZX_RIGHT_SIGNAL_PEER", Value: 8192},
{Name: "ZX_RIGHT_TRANSFER", Value: 2},
{Name: "ZX_RIGHT_WRITE", Value: 8},
- {Name: "ZX_SOCKET_CONTROL", Value: 4},
+ {Name: "ZX_SOCKET_CREATE_MASK", Value: 1},
{Name: "ZX_SOCKET_DATAGRAM", Value: 1},
- {Name: "ZX_SOCKET_HAS_CONTROL", Value: 2},
{Name: "ZX_SOCKET_SHUTDOWN_READ", Value: 2},
{Name: "ZX_SOCKET_SHUTDOWN_WRITE", Value: 1},
{Name: "ZX_SOCKET_STREAM"},
@@ -7794,4 +7395,4 @@ var consts_amd64 = []ConstValue{
{Name: "fuchsia_power_Status_OK"},
}
-const revision_amd64 = "0831ecb34bc4bfd3c444366782fdbd3fafe56026"
+const revision_amd64 = "f0ef39210d9bc1961aa7d4b3cbb065e1e1e3824b"
diff --git a/sys/fuchsia/gen/arm64.go b/sys/fuchsia/gen/arm64.go
index 33e7c9cae..2ce81dee5 100644
--- a/sys/fuchsia/gen/arm64.go
+++ b/sys/fuchsia/gen/arm64.go
@@ -52,8 +52,6 @@ var resources_arm64 = []*ResourceDesc{
{Name: "zx_chan_fuchsia_net_Connectivity_server", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_Connectivity_server"}, Values: []uint64{0}},
{Name: "zx_chan_fuchsia_net_NameLookup_client", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_NameLookup_client"}, Values: []uint64{0}},
{Name: "zx_chan_fuchsia_net_NameLookup_server", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_NameLookup_server"}, Values: []uint64{0}},
- {Name: "zx_chan_fuchsia_net_SocketControl_client", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_SocketControl_client"}, Values: []uint64{0}},
- {Name: "zx_chan_fuchsia_net_SocketControl_server", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_SocketControl_server"}, Values: []uint64{0}},
{Name: "zx_chan_fuchsia_net_SocketProvider_client", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_SocketProvider_client"}, Values: []uint64{0}},
{Name: "zx_chan_fuchsia_net_SocketProvider_server", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_SocketProvider_server"}, Values: []uint64{0}},
{Name: "zx_chan_fuchsia_net_stack_Stack_client", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"zx_handle", "zx_chan", "zx_chan_fuchsia_net_stack_Stack_client"}, Values: []uint64{0}},
@@ -1329,106 +1327,6 @@ var structDescs_arm64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
}}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlAcceptRequest, fuchsia_net_SocketControlAcceptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlAcceptResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlAcceptRequest, fuchsia_net_SocketControlAcceptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlAcceptResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlAcceptRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlAcceptRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlAcceptResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlBindRequest, fuchsia_net_SocketControlBindRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlBindResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlBindRequest, fuchsia_net_SocketControlBindRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlBindResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlBindRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlBindRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlBindResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlCloseRequest, fuchsia_net_SocketControlCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlCloseResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlCloseRequest, fuchsia_net_SocketControlCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlCloseResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlCloseRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlCloseRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlCloseResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlConnectRequest, fuchsia_net_SocketControlConnectRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlConnectResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlConnectRequest, fuchsia_net_SocketControlConnectRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlConnectResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlConnectRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlConnectRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlConnectResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetPeerNameRequest, fuchsia_net_SocketControlGetPeerNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetPeerNameResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlGetPeerNameRequest, fuchsia_net_SocketControlGetPeerNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetPeerNameResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetSockNameRequest, fuchsia_net_SocketControlGetSockNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockNameResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlGetSockNameRequest, fuchsia_net_SocketControlGetSockNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockNameResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetSockOptRequest, fuchsia_net_SocketControlGetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockOptResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlGetSockOptRequest, fuchsia_net_SocketControlGetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockOptResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlIoctlRequest, fuchsia_net_SocketControlIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlIoctlResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlIoctlRequest, fuchsia_net_SocketControlIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlIoctlResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlIoctlRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlIoctlRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlIoctlResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlListenRequest, fuchsia_net_SocketControlListenRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlListenResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlListenRequest, fuchsia_net_SocketControlListenRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlListenResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlListenRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlListenRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlListenResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlSetSockOptRequest, fuchsia_net_SocketControlSetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlSetSockOptResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketControlSetSockOptRequest, fuchsia_net_SocketControlSetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlSetSockOptResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketProviderGetAddrInfoRequest, fuchsia_net_SocketProviderGetAddrInfoRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderGetAddrInfoResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketProviderGetAddrInfoRequest, fuchsia_net_SocketProviderGetAddrInfoRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderGetAddrInfoResponseHandles]", TypeSize: 48}, Fields: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketProviderGetAddrInfoRequest"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketProviderGetAddrInfoRequestHandles"}}},
@@ -1439,16 +1337,6 @@ var structDescs_arm64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
}}},
- {Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketProviderSocketRequest, fuchsia_net_SocketProviderSocketRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderSocketResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_SocketProviderSocketRequest, fuchsia_net_SocketProviderSocketRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderSocketResponseHandles]", TypeSize: 48}, Fields: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketProviderSocketRequest"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketProviderSocketRequestHandles"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_bytes", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", TypeSize: 65536, ArgDir: 1}, Kind: 1, RangeBegin: 65536, RangeEnd: 65536}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "rd_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_SocketProviderSocketResponseHandles", Dir: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "wr_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"wr_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "wr_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"wr_handles"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "rd_num_bytes", TypeSize: 4}}, BitSize: 8, Path: []string{"rd_bytes"}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize4", FldName: "rd_num_handles", TypeSize: 4}}, BitSize: 32, Path: []string{"rd_handles"}},
- }}},
{Key: StructKey{Name: "fidl_call_args[fuchsia_net_stack_StackAddEthernetInterfaceRequest, fuchsia_net_stack_StackAddEthernetInterfaceRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_stack_StackAddEthernetInterfaceResponseHandles]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_call_args[fuchsia_net_stack_StackAddEthernetInterfaceRequest, fuchsia_net_stack_StackAddEthernetInterfaceRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_stack_StackAddEthernetInterfaceResponseHandles]", TypeSize: 48}, Fields: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_bytes", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_stack_StackAddEthernetInterfaceRequest"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "wr_handles", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_stack_StackAddEthernetInterfaceRequestHandles"}}},
@@ -1705,12 +1593,6 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1110617141},
}}},
- {Key: StructKey{Name: "fidl_message_header[1117818704]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1117818704]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1117818704},
- }}},
{Key: StructKey{Name: "fidl_message_header[1118517818]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1118517818]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -1723,12 +1605,6 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1119663833},
}}},
- {Key: StructKey{Name: "fidl_message_header[1157859964]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1157859964]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1157859964},
- }}},
{Key: StructKey{Name: "fidl_message_header[1166403528]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1166403528]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -1795,12 +1671,6 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1343632858},
}}},
- {Key: StructKey{Name: "fidl_message_header[1365685084]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1365685084]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 1365685084},
- }}},
{Key: StructKey{Name: "fidl_message_header[1373297565]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[1373297565]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2041,36 +1911,18 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 2087865796},
}}},
- {Key: StructKey{Name: "fidl_message_header[2092731140]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[2092731140]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 2092731140},
- }}},
{Key: StructKey{Name: "fidl_message_header[2120159974]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[2120159974]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 2120159974},
}}},
- {Key: StructKey{Name: "fidl_message_header[2132650507]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[2132650507]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 2132650507},
- }}},
{Key: StructKey{Name: "fidl_message_header[281534132]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[281534132]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 281534132},
}}},
- {Key: StructKey{Name: "fidl_message_header[316444173]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[316444173]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 316444173},
- }}},
{Key: StructKey{Name: "fidl_message_header[324887181]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[324887181]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2089,12 +1941,6 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 343996832},
}}},
- {Key: StructKey{Name: "fidl_message_header[345505709]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[345505709]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 345505709},
- }}},
{Key: StructKey{Name: "fidl_message_header[351572256]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[351572256]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2155,12 +2001,6 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 462052964},
}}},
- {Key: StructKey{Name: "fidl_message_header[472396488]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[472396488]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 472396488},
- }}},
{Key: StructKey{Name: "fidl_message_header[498796293]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[498796293]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2173,12 +2013,6 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 503331302},
}}},
- {Key: StructKey{Name: "fidl_message_header[506040350]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[506040350]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 506040350},
- }}},
{Key: StructKey{Name: "fidl_message_header[523329667]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[523329667]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2317,12 +2151,6 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 759190088},
}}},
- {Key: StructKey{Name: "fidl_message_header[764939941]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[764939941]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 764939941},
- }}},
{Key: StructKey{Name: "fidl_message_header[782580781]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[782580781]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2335,12 +2163,6 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 787943096},
}}},
- {Key: StructKey{Name: "fidl_message_header[796734679]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[796734679]", TypeSize: 16}, Fields: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "ordinal", TypeSize: 4}}, Val: 796734679},
- }}},
{Key: StructKey{Name: "fidl_message_header[818031436]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fidl_message_header[818031436]", TypeSize: 16}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "txid", TypeSize: 4}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "reserved", TypeSize: 4}}},
@@ -2525,9 +2347,11 @@ var structDescs_arm64 = []*KeyedStruct{
{Key: StructKey{Name: "fuchsia_cobalt_ControllerBlockUntilEmptyResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_cobalt_ControllerBlockUntilEmptyResponseHandles", ArgDir: 1}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
}}},
- {Key: StructKey{Name: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequest", TypeSize: 20}, Fields: []Type{
+ {Key: StructKey{Name: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequest", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "fidl_message_header[1523993550]"}, FldName: "hdr"},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "day_index", TypeSize: 4}}},
+ &StructType{Key: StructKey{Name: "fidl_vector"}, FldName: "report_idsInLine"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "report_idsOutOfLine", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}},
}}},
{Key: StructKey{Name: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_cobalt_ControllerGenerateAggregatedObservationsRequestHandles"}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
@@ -4205,111 +4029,6 @@ var structDescs_arm64 = []*KeyedStruct{
{Key: StructKey{Name: "fuchsia_net_NameLookup_LookupIp_ResultHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_NameLookup_LookupIp_ResultHandles", ArgDir: 1, IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "fuchsia_net_NameLookup_LookupIp_ResponseHandles", Dir: 1}, FldName: "response"},
}}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlAcceptRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlAcceptRequest", TypeSize: 18}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[796734679]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "flags_", TypeSize: 2}}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlAcceptRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlAcceptRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlAcceptResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlAcceptResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlBindRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlBindRequest", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[2092731140]"}, FldName: "hdr"},
- &StructType{Key: StructKey{Name: "fidl_vector"}, FldName: "addrInLine"},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "addrOutOfLine", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlBindRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlBindRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlBindResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlBindResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlCloseRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlCloseRequest", TypeSize: 16}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[506040350]"}, FldName: "hdr"},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlCloseRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlCloseRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlCloseResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlCloseResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlConnectRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlConnectRequest", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[345505709]"}, FldName: "hdr"},
- &StructType{Key: StructKey{Name: "fidl_vector"}, FldName: "addrInLine"},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "addrOutOfLine", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlConnectRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlConnectRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlConnectResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlConnectResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetPeerNameRequest", TypeSize: 16}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[472396488]"}, FldName: "hdr"},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetPeerNameRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetPeerNameResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetPeerNameResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockNameRequest", TypeSize: 16}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[764939941]"}, FldName: "hdr"},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockNameRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockNameResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockNameResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockOptRequest", TypeSize: 20}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[2132650507]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "level", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "optname", TypeSize: 2}}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockOptRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlGetSockOptResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlGetSockOptResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlIoctlRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlIoctlRequest", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[1157859964]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "req", TypeSize: 2}}},
- &StructType{Key: StructKey{Name: "fidl_vector"}, FldName: "inInLine"},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "inOutOfLine", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlIoctlRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlIoctlRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlIoctlResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlIoctlResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlListenRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlListenRequest", TypeSize: 18}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[1117818704]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "backlog", TypeSize: 2}}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlListenRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlListenRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlListenResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlListenResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlSetSockOptRequest", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[1365685084]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "level", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "optname", TypeSize: 2}}},
- &StructType{Key: StructKey{Name: "fidl_vector"}, FldName: "optvalInLine"},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "optvalOutOfLine", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlSetSockOptRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketControlSetSockOptResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketControlSetSockOptResponseHandles", ArgDir: 1}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void", ArgDir: 1}, Kind: 1},
- }}},
{Key: StructKey{Name: "fuchsia_net_SocketProviderGetAddrInfoRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketProviderGetAddrInfoRequest", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "fidl_message_header[498796293]"}, FldName: "hdr"},
&StructType{Key: StructKey{Name: "fidl_string"}, FldName: "nodeInLine"},
@@ -4325,18 +4044,6 @@ var structDescs_arm64 = []*KeyedStruct{
{Key: StructKey{Name: "fuchsia_net_SocketProviderGetAddrInfoResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketProviderGetAddrInfoResponseHandles", ArgDir: 1}, Fields: []Type{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "resHandles", ArgDir: 1}, Type: &StructType{Key: StructKey{Name: "fuchsia_net_AddrInfoHandles", Dir: 1}}, Kind: 1, RangeBegin: 4, RangeEnd: 4},
}}},
- {Key: StructKey{Name: "fuchsia_net_SocketProviderSocketRequest"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketProviderSocketRequest", TypeSize: 22}, Fields: []Type{
- &StructType{Key: StructKey{Name: "fidl_message_header[316444173]"}, FldName: "hdr"},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "domain", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "type_", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "protocol", TypeSize: 2}}},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketProviderSocketRequestHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketProviderSocketRequestHandles"}, Fields: []Type{
- &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
- }}},
- {Key: StructKey{Name: "fuchsia_net_SocketProviderSocketResponseHandles", Dir: 1}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SocketProviderSocketResponseHandles", TypeSize: 4, ArgDir: 1}, Fields: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "s", TypeSize: 4, ArgDir: 1}},
- }}},
{Key: StructKey{Name: "fuchsia_net_SubnetHandles"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "fuchsia_net_SubnetHandles"}, Fields: []Type{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "void"}, Kind: 1},
}}},
@@ -5096,10 +4803,6 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 28}, Kind: 2, Values: []string{"/svc/fuchsia.net.NameLookup\x00"}}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_NameLookup_server", FldName: "handle", TypeSize: 4}},
}},
- {Name: "fdio_service_connect$fuchsia_net_SocketControl", CallName: "fdio_service_connect", Args: []Type{
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 6}, Kind: 2, Values: []string{"/svc/\x00"}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_server", FldName: "handle", TypeSize: 4}},
- }},
{Name: "fdio_service_connect$fuchsia_net_SocketProvider", CallName: "fdio_service_connect", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 32}, Kind: 2, Values: []string{"/svc/fuchsia.net.SocketProvider\x00"}}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketProvider_server", FldName: "handle", TypeSize: 4}},
@@ -6317,86 +6020,6 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
}},
- {Name: "zx_channel_call$fuchsia_net_SocketControlAccept", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlAcceptRequest, fuchsia_net_SocketControlAcceptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlAcceptResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlBind", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlBindRequest, fuchsia_net_SocketControlBindRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlBindResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlClose", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlCloseRequest, fuchsia_net_SocketControlCloseRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlCloseResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlConnect", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlConnectRequest, fuchsia_net_SocketControlConnectRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlConnectResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlGetPeerName", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetPeerNameRequest, fuchsia_net_SocketControlGetPeerNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetPeerNameResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlGetSockName", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetSockNameRequest, fuchsia_net_SocketControlGetSockNameRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockNameResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlGetSockOpt", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlGetSockOptRequest, fuchsia_net_SocketControlGetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlGetSockOptResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlIoctl", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlIoctlRequest, fuchsia_net_SocketControlIoctlRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlIoctlResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlListen", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlListenRequest, fuchsia_net_SocketControlListenRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlListenResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
- {Name: "zx_channel_call$fuchsia_net_SocketControlSetSockOpt", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketControlSetSockOptRequest, fuchsia_net_SocketControlSetSockOptRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketControlSetSockOptResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
{Name: "zx_channel_call$fuchsia_net_SocketProviderGetAddrInfo", CallName: "zx_channel_call", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketProvider_client", FldName: "handle", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
@@ -6405,14 +6028,6 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
}},
- {Name: "zx_channel_call$fuchsia_net_SocketProviderSocket", CallName: "zx_channel_call", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketProvider_client", FldName: "handle", TypeSize: 4}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_time", FldName: "deadline", TypeSize: 8}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "args", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "fidl_call_args[fuchsia_net_SocketProviderSocketRequest, fuchsia_net_SocketProviderSocketRequestHandles, array[int8, ZX_CHANNEL_MAX_MSG_BYTES], fuchsia_net_SocketProviderSocketResponseHandles]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_bytes", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual_handles", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4, ArgDir: 1}}}},
- }},
{Name: "zx_channel_call$fuchsia_net_stack_StackAddEthernetInterface", CallName: "zx_channel_call", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_stack_Stack_client", FldName: "handle", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
@@ -6679,11 +6294,6 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out0", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_NameLookup_client", TypeSize: 4, ArgDir: 1}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out1", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_NameLookup_server", TypeSize: 4, ArgDir: 1}}},
}},
- {Name: "zx_channel_create$fuchsia_net_SocketControl", CallName: "zx_channel_create", Args: []Type{
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out0", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_client", TypeSize: 4, ArgDir: 1}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out1", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketControl_server", TypeSize: 4, ArgDir: 1}}},
- }},
{Name: "zx_channel_create$fuchsia_net_SocketProvider", CallName: "zx_channel_create", Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "options", TypeSize: 8}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out0", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_chan_fuchsia_net_SocketProvider_client", TypeSize: 4, ArgDir: 1}}},
@@ -7345,33 +6955,25 @@ var syscalls_arm64 = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg1", TypeSize: 8}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "arg2", TypeSize: 8}}},
}},
- {Name: "zx_socket_accept", CallName: "zx_socket_accept", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out_socket", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", TypeSize: 4, ArgDir: 1}}},
- }},
{Name: "zx_socket_create", CallName: "zx_socket_create", Args: []Type{
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_create_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{0, 1, 2}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_create_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{0, 1}, BitMask: true},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out0", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", TypeSize: 4, ArgDir: 1}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "out1", TypeSize: 8}, Type: &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", TypeSize: 4, ArgDir: 1}}},
}},
{Name: "zx_socket_read", CallName: "zx_socket_read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_read_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{4}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_read_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1}, BitMask: true},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buffer", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Path: []string{"buffer"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}},
}},
- {Name: "zx_socket_share", CallName: "zx_socket_share", Args: []Type{
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
- &ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "socket_to_share", TypeSize: 4}},
- }},
{Name: "zx_socket_shutdown", CallName: "zx_socket_shutdown", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handlez", TypeSize: 4}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_shutdown_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{2, 1}, BitMask: true},
}},
{Name: "zx_socket_write", CallName: "zx_socket_write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "zx_socket", FldName: "handle", TypeSize: 4}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_write_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{4, 2, 1}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "socket_write_options", FldName: "options", TypeSize: 8}}, Vals: []uint64{1, 2, 1}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buffer", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Path: []string{"buffer"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "actual", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", TypeSize: 8, ArgDir: 1}}}},
@@ -7734,9 +7336,8 @@ var consts_arm64 = []ConstValue{
{Name: "ZX_RIGHT_SIGNAL_PEER", Value: 8192},
{Name: "ZX_RIGHT_TRANSFER", Value: 2},
{Name: "ZX_RIGHT_WRITE", Value: 8},
- {Name: "ZX_SOCKET_CONTROL", Value: 4},
+ {Name: "ZX_SOCKET_CREATE_MASK", Value: 1},
{Name: "ZX_SOCKET_DATAGRAM", Value: 1},
- {Name: "ZX_SOCKET_HAS_CONTROL", Value: 2},
{Name: "ZX_SOCKET_SHUTDOWN_READ", Value: 2},
{Name: "ZX_SOCKET_SHUTDOWN_WRITE", Value: 1},
{Name: "ZX_SOCKET_STREAM"},
@@ -7794,4 +7395,4 @@ var consts_arm64 = []ConstValue{
{Name: "fuchsia_power_Status_OK"},
}
-const revision_arm64 = "b643855d1cb7438abcacb87d29a4dfdd49961397"
+const revision_arm64 = "6a8f950f7eee2c03aa38625f64563d19c3548436"
diff --git a/sys/fuchsia/sockets.txt b/sys/fuchsia/sockets.txt
index c63160b28..e7fbf634c 100644
--- a/sys/fuchsia/sockets.txt
+++ b/sys/fuchsia/sockets.txt
@@ -5,14 +5,12 @@ include <zircon/syscalls.h>
resource zx_socket[zx_handle]
-zx_socket_accept(handle zx_socket, out_socket ptr[out, zx_socket])
zx_socket_create(options flags[socket_create_options], out0 ptr[out, zx_socket], out1 ptr[out, zx_socket])
zx_socket_read(handle zx_socket, options flags[socket_read_options], buffer ptr[out, array[int8]], size len[buffer], actual ptr[out, intptr])
-zx_socket_share(handle zx_socket, socket_to_share zx_socket)
zx_socket_write(handle zx_socket, options flags[socket_write_options], buffer ptr[in, array[int8]], size len[buffer], actual ptr[out, intptr])
zx_socket_shutdown(handlez zx_socket, options flags[socket_shutdown_options])
-socket_create_options = ZX_SOCKET_STREAM, ZX_SOCKET_DATAGRAM, ZX_SOCKET_HAS_CONTROL
-socket_read_options = ZX_SOCKET_CONTROL
-socket_write_options = ZX_SOCKET_CONTROL, ZX_SOCKET_SHUTDOWN_READ, ZX_SOCKET_SHUTDOWN_WRITE
+socket_create_options = ZX_SOCKET_STREAM, ZX_SOCKET_DATAGRAM
+socket_read_options = ZX_SOCKET_CREATE_MASK
+socket_write_options = ZX_SOCKET_CREATE_MASK, ZX_SOCKET_SHUTDOWN_READ, ZX_SOCKET_SHUTDOWN_WRITE
socket_shutdown_options = ZX_SOCKET_SHUTDOWN_READ, ZX_SOCKET_SHUTDOWN_WRITE
diff --git a/sys/fuchsia/sockets_amd64.const b/sys/fuchsia/sockets_amd64.const
index a933bc014..275788ba5 100644
--- a/sys/fuchsia/sockets_amd64.const
+++ b/sys/fuchsia/sockets_amd64.const
@@ -1,7 +1,6 @@
# AUTOGENERATED FILE
-ZX_SOCKET_CONTROL = 4
+ZX_SOCKET_CREATE_MASK = 1
ZX_SOCKET_DATAGRAM = 1
-ZX_SOCKET_HAS_CONTROL = 2
ZX_SOCKET_SHUTDOWN_READ = 2
ZX_SOCKET_SHUTDOWN_WRITE = 1
ZX_SOCKET_STREAM = 0
diff --git a/sys/fuchsia/sockets_arm64.const b/sys/fuchsia/sockets_arm64.const
index a933bc014..275788ba5 100644
--- a/sys/fuchsia/sockets_arm64.const
+++ b/sys/fuchsia/sockets_arm64.const
@@ -1,7 +1,6 @@
# AUTOGENERATED FILE
-ZX_SOCKET_CONTROL = 4
+ZX_SOCKET_CREATE_MASK = 1
ZX_SOCKET_DATAGRAM = 1
-ZX_SOCKET_HAS_CONTROL = 2
ZX_SOCKET_SHUTDOWN_READ = 2
ZX_SOCKET_SHUTDOWN_WRITE = 1
ZX_SOCKET_STREAM = 0
diff --git a/sys/linux/dev_char_usb.txt b/sys/linux/dev_char_usb.txt
new file mode 100644
index 000000000..f75196b7e
--- /dev/null
+++ b/sys/linux/dev_char_usb.txt
@@ -0,0 +1,11 @@
+# Copyright 2019 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.
+
+include <include/linux/usb.h>
+
+resource fd_char_usb[fd]
+
+syz_open_dev$char_usb(dev const[0xc], major const[USB_MAJOR], minor intptr) fd_char_usb
+
+read$char_usb(fd fd_char_usb, buf buffer[out], count len[buf])
+write$char_usb(fd fd_char_usb, buf buffer[in], count len[buf])
diff --git a/sys/linux/dev_char_usb_386.const b/sys/linux/dev_char_usb_386.const
new file mode 100644
index 000000000..cdb26013d
--- /dev/null
+++ b/sys/linux/dev_char_usb_386.const
@@ -0,0 +1,4 @@
+# AUTOGENERATED FILE
+USB_MAJOR = 180
+__NR_read = 3
+__NR_write = 4
diff --git a/sys/linux/dev_char_usb_amd64.const b/sys/linux/dev_char_usb_amd64.const
new file mode 100644
index 000000000..cc03c76c0
--- /dev/null
+++ b/sys/linux/dev_char_usb_amd64.const
@@ -0,0 +1,4 @@
+# AUTOGENERATED FILE
+USB_MAJOR = 180
+__NR_read = 0
+__NR_write = 1
diff --git a/sys/linux/dev_char_usb_arm.const b/sys/linux/dev_char_usb_arm.const
new file mode 100644
index 000000000..cdb26013d
--- /dev/null
+++ b/sys/linux/dev_char_usb_arm.const
@@ -0,0 +1,4 @@
+# AUTOGENERATED FILE
+USB_MAJOR = 180
+__NR_read = 3
+__NR_write = 4
diff --git a/sys/linux/dev_char_usb_arm64.const b/sys/linux/dev_char_usb_arm64.const
new file mode 100644
index 000000000..aa7f809eb
--- /dev/null
+++ b/sys/linux/dev_char_usb_arm64.const
@@ -0,0 +1,4 @@
+# AUTOGENERATED FILE
+USB_MAJOR = 180
+__NR_read = 63
+__NR_write = 64
diff --git a/sys/linux/dev_char_usb_ppc64le.const b/sys/linux/dev_char_usb_ppc64le.const
new file mode 100644
index 000000000..cdb26013d
--- /dev/null
+++ b/sys/linux/dev_char_usb_ppc64le.const
@@ -0,0 +1,4 @@
+# AUTOGENERATED FILE
+USB_MAJOR = 180
+__NR_read = 3
+__NR_write = 4
diff --git a/sys/linux/gen/386.go b/sys/linux/gen/386.go
index 8ed776167..6810b12f3 100644
--- a/sys/linux/gen/386.go
+++ b/sys/linux/gen/386.go
@@ -40,6 +40,7 @@ var resources_386 = []*ResourceDesc{
{Name: "fd_cgroup_pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_pid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_subtree", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_subtree"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_type", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_type"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_char_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_char_usb"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_dma_buf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dma_buf"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dmabuf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dmabuf"}, Values: []uint64{18446744073709551615}},
@@ -112,6 +113,8 @@ var resources_386 = []*ResourceDesc{
{Name: "fd_uhid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_uhid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_uinput", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_uinput"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_usb_cdc_ecm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_cdc_ecm"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_usb_cdc_ncm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_cdc_ncm"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb_hid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_hid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb_printer", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_printer"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usbmon", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_usbmon"}, Values: []uint64{18446744073709551615}},
@@ -25343,11 +25346,12 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 2},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_acm_caps", FldName: "bmCapabilities", TypeSize: 1}}, Vals: []uint64{1, 2, 4, 8}, BitMask: true},
}}},
- {Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_descriptor", TypeSize: 4}, Fields: []Type{
+ {Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_descriptor", TypeSize: 5}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_caps", FldName: "bmCapabilities", TypeSize: 1}}, Vals: []uint64{1, 2}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDataInterface", TypeSize: 1}}},
}}},
{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_country_functional_desc", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
@@ -25364,40 +25368,42 @@ var structDescs_386 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxCommand", TypeSize: 2}}},
}}},
+ {Key: StructKey{Name: "usb_cdc_ecm_mac"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ecm_mac", TypeSize: 24}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data0", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data1", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data2", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_ecm_mbm_guid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ecm_mbm_guid", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "id0", TypeSize: 8}}, Val: 94397490813999011},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "id1", TypeSize: 8}}, Val: 3042602437899716518},
+ }}},
{Key: StructKey{Name: "usb_cdc_ether_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ether_desc", TypeSize: 13}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 15},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iMACAddress", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iMACAddress", TypeSize: 1}}, Val: 1},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "bmEthernetStatistics", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxSegmentSize", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wNumberMCFilters", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumberPowerFilters", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "usb_cdc_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_generic", IsVarlen: true}, Fields: []Type{
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 17, 18, 19, 20, 21, 26, 27, 28}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "usb_cdc_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header", IsVarlen: true}, Fields: []Type{
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "items", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_item"}}, Kind: 1, RangeEnd: 16},
- }}},
{Key: StructKey{Name: "usb_cdc_header_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_desc", TypeSize: 5}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdCDC", TypeSize: 2}}},
}}},
- {Key: StructKey{Name: "usb_cdc_header_item"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_item", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_cdc_generic"}, FldName: "generic"},
+ {Key: StructKey{Name: "usb_cdc_header_ethernet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ethernet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_union_desc_t[0, 0]"}, FldName: "union"},
&StructType{Key: StructKey{Name: "usb_cdc_header_desc"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "other", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_ethernet_other"}}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_header_ethernet_other"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ethernet_other", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, FldName: "call_mgmt"},
&StructType{Key: StructKey{Name: "usb_cdc_acm_descriptor"}, FldName: "acm"},
- &StructType{Key: StructKey{Name: "usb_cdc_union_desc"}, FldName: "union"},
&StructType{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, FldName: "country_functional"},
&StructType{Key: StructKey{Name: "usb_cdc_network_terminal_desc"}, FldName: "network_terminal"},
- &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
&StructType{Key: StructKey{Name: "usb_cdc_dmm_desc"}, FldName: "dmm"},
&StructType{Key: StructKey{Name: "usb_cdc_mdlm_desc"}, FldName: "mdlm"},
&StructType{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, FldName: "mdlm_detail"},
@@ -25406,6 +25412,25 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "usb_cdc_mbim_desc"}, FldName: "mbim"},
&StructType{Key: StructKey{Name: "usb_cdc_mbim_extended_desc"}, FldName: "mbim_extended"},
}}},
+ {Key: StructKey{Name: "usb_cdc_header_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_union_desc_t[0, 1]"}, FldName: "union"},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_desc"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ncm_desc"}, FldName: "ncm"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "other", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_ncm_other"}}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_header_ncm_other"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ncm_other", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, FldName: "call_mgmt"},
+ &StructType{Key: StructKey{Name: "usb_cdc_acm_descriptor"}, FldName: "acm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, FldName: "country_functional"},
+ &StructType{Key: StructKey{Name: "usb_cdc_network_terminal_desc"}, FldName: "network_terminal"},
+ &StructType{Key: StructKey{Name: "usb_cdc_dmm_desc"}, FldName: "dmm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mdlm_desc"}, FldName: "mdlm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, FldName: "mdlm_detail"},
+ &StructType{Key: StructKey{Name: "usb_cdc_obex_desc"}, FldName: "obex"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mbim_desc"}, FldName: "mbim"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mbim_extended_desc"}, FldName: "mbim_extended"},
+ }}},
{Key: StructKey{Name: "usb_cdc_mbim_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_mbim_desc", TypeSize: 12}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
@@ -25430,7 +25455,7 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 18},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "bGUID", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "usb_cdc_ecm_mbm_guid"}, FldName: "bGUID"},
}}},
{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_mdlm_detail_desc", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
@@ -25475,24 +25500,60 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 21},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
}}},
- {Key: StructKey{Name: "usb_cdc_union_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_cdc_union_desc_t[0, 0]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc_t[0, 0]", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bMasterInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bSlaveInterface0", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "slave_interfaces", IsVarlen: true}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_union_desc_t[0, 1]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc_t[0, 1]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 6},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMasterInterface0", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSlaveInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bMasterInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bSlaveInterface0", TypeSize: 1}}, Val: 1},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "slave_interfaces", IsVarlen: true}, Kind: 1, RangeEnd: 6},
}}},
{Key: StructKey{Name: "usb_config_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_config_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_hid", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_config_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumInterfaces", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bConfigurationValue", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptors_cdc_ncm"}, FldName: "interfaces"},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumInterfaces", TypeSize: 1}}, Path: []string{"interfaces"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bConfigurationValue", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_cdc_ecm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25503,7 +25564,7 @@ var structDescs_386 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_hid"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25514,7 +25575,7 @@ var structDescs_386 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_printer"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25523,7 +25584,7 @@ var structDescs_386 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 4},
}}},
{Key: StructKey{Name: "usb_dev_cap"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_dev_cap", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_generic_cap_descriptor"}, FldName: "generic"},
@@ -25537,11 +25598,17 @@ var structDescs_386 = []*KeyedStruct{
{Key: StructKey{Name: "usb_device_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_device_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_device_descriptor_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]"}, FldName: "inner"},
+ }}},
{Key: StructKey{Name: "usb_device_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_hid", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 64, array[usb_config_descriptor_hid, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_device_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
@@ -25550,13 +25617,13 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
@@ -25567,36 +25634,79 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_hid"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1008},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 27671},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42152},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_printer"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
+ {Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42145},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_cdc_ecm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42145},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_cdc_ncm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[flags[usb_endpoint_addresses, int8], flags[usb_endpoint_attributes, int8], array[usb_endpoint_extra_descriptor, 0:2]]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_in", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_notify", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_out", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor_hid_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_hid_in", TypeSize: 9}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]"}, FldName: "inner"},
}}},
@@ -25609,12 +25719,45 @@ var structDescs_386 = []*KeyedStruct{
{Key: StructKey{Name: "usb_endpoint_descriptor_printer_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_printer_out", TypeSize: 9}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_PRINTER_OUT_ADDRESS, int8], const[USB_ENDPOINT_PRINTER_ATTRIBUTES, int8], void]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 130},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 129},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 129},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25625,7 +25768,7 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25636,7 +25779,7 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 130},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25647,7 +25790,7 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 1},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25658,12 +25801,21 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_endpoint_addresses", FldName: "bEndpointAddress", TypeSize: 1}}, Vals: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 128}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_endpoint_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 0, 16, 0, 4, 8, 12, 0, 16, 16}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_endpoint_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "notify", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}}, Kind: 1, RangeEnd: 1},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, FldName: "out"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ncm_data"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_cdc_ncm_data", TypeSize: 18}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, FldName: "out"},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptors_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_hid", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_hid_in"}, FldName: "in"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "out", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_hid_out"}}, Kind: 1, RangeEnd: 1},
@@ -25733,33 +25885,36 @@ var structDescs_386 = []*KeyedStruct{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_hub_change_flags", FldName: "wHubChange", TypeSize: 2}}, Vals: []uint64{1, 2}, BitMask: true},
}}},
{Key: StructKey{Name: "usb_interface_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_interface_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_hid", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_interface_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, FldName: "inner"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_interface_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "endpoints", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor"}}, Kind: 1, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ncm"}, FldName: "extra"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}, FldName: "endpoints"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 3},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_hid_protocols", FldName: "bInterfaceProtocol", TypeSize: 1}}, Vals: []uint64{0, 1, 2}, BitMask: true},
@@ -25767,12 +25922,12 @@ var structDescs_386 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "usb_hid_descriptor_hid"}, FldName: "extra"},
&StructType{Key: StructKey{Name: "usb_endpoint_descriptors_hid"}, FldName: "endpoints"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 7},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 1},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceProtocol", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 3},
@@ -25780,10 +25935,67 @@ var structDescs_386 = []*KeyedStruct{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
&StructType{Key: StructKey{Name: "usb_endpoint_descriptors_printer"}, FldName: "endpoints"},
}}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 2, RangeEnd: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ethernet"}, FldName: "extra"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ecm"}, FldName: "endpoints"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_interface_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "endpoints", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor"}}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "endpoints"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]", TypeSize: 27}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ncm_data"}, FldName: "endpoints"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptors_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptors_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]"}, FldName: "control"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]"}, FldName: "data_nop"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]"}, FldName: "data"},
+ }}},
{Key: StructKey{Name: "usb_interface_extra_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_extra_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_generic_descriptor"}, FldName: "generic"},
&StructType{Key: StructKey{Name: "usb_hid_descriptor_hid"}, FldName: "hid_hid"},
- &StructType{Key: StructKey{Name: "usb_cdc_header"}, FldName: "usb_cdc"},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ethernet"}, FldName: "usb_cdc"},
}}},
{Key: StructKey{Name: "usb_port_status"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_port_status", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_port_status_flags", FldName: "wPortStatus", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 2048, 4096, 480, 512, 7168, 0, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352}},
@@ -25806,7 +26018,7 @@ var structDescs_386 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceClass", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceSubClass", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumConfigurations", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bRESERVED", TypeSize: 1}}},
}}},
@@ -25839,11 +26051,24 @@ var structDescs_386 = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "bmSublinkSpeedAttr", IsVarlen: true}, Type: &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_ssp_cap_sublink_speeds", TypeSize: 4}}, Vals: []uint64{15, 48, 192, 16128, 49152, 16711680}, BitMask: true}, Kind: 1, RangeEnd: 6},
}}},
{Key: StructKey{Name: "usb_string_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]"}, FldName: "lang_id"},
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[array[int8]]"}, FldName: "string"},
+ }}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[array[int8]]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_lang_ids", FldName: "lang_id", TypeSize: 2}}, Vals: []uint64{1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, 10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1101, 1068, 2092, 1069, 1059, 1093, 1026, 1109, 1027, 1028, 2052, 3076, 4100, 5124, 1050, 1029, 1030, 1043, 2067, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1065, 1035, 1036, 2060, 3084, 4108, 5132, 6156, 1079, 1031, 2055, 3079, 4103, 5127, 1032, 1095, 1037, 1081, 1038, 1039, 1057, 1040, 2064, 1041, 1099, 2144, 1087, 1111, 1042, 2066, 1062, 1063, 2087, 1071, 1086, 2110, 1100, 1112, 1102, 2145, 1044, 2068, 1096, 1045, 1046, 2070, 1094, 1048, 1049, 1103, 3098, 2074, 1113, 1051, 1060, 1034, 2058, 3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, 13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1072, 1089, 1053, 2077, 1097, 1092, 1098, 1054, 1055, 1058, 1056, 2080, 1091, 2115, 1066, 1279, 61695, 62719, 63743, 64767}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]", TypeSize: 4}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_lang_ids", FldName: "data", TypeSize: 2}}, Vals: []uint64{1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, 10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1101, 1068, 2092, 1069, 1059, 1093, 1026, 1109, 1027, 1028, 2052, 3076, 4100, 5124, 1050, 1029, 1030, 1043, 2067, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1065, 1035, 1036, 2060, 3084, 4108, 5132, 6156, 1079, 1031, 2055, 3079, 4103, 5127, 1032, 1095, 1037, 1081, 1038, 1039, 1057, 1040, 2064, 1041, 1099, 2144, 1087, 1111, 1042, 2066, 1062, 1063, 2087, 1071, 1086, 2110, 1100, 1112, 1102, 2145, 1044, 2068, 1096, 1045, 1046, 2070, 1094, 1048, 1049, 1103, 3098, 2074, 1113, 1051, 1060, 1034, 2058, 3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, 13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1072, 1089, 1053, 2077, 1097, 1092, 1098, 1054, 1055, 1058, 1056, 2080, 1091, 2115, 1066, 1279, 61695, 62719, 63743, 64767}},
+ }}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[usb_cdc_ecm_mac]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[usb_cdc_ecm_mac]", TypeSize: 26}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
+ &StructType{Key: StructKey{Name: "usb_cdc_ecm_mac"}, FldName: "data"},
+ }}},
{Key: StructKey{Name: "usb_wireless_cap_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_wireless_cap_descriptor", TypeSize: 11}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 16},
@@ -26937,7 +27162,7 @@ var structDescs_386 = []*KeyedStruct{
}}},
{Key: StructKey{Name: "vusb_connect_string_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_connect_string_descriptor", TypeSize: 8}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"str"}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "str", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "usb_string_descriptor"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "str", TypeSize: 4}, Type: &UnionType{Key: StructKey{Name: "usb_string_descriptor"}}},
}}},
{Key: StructKey{Name: "vusb_descriptor_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptor_generic", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_request_types", FldName: "req_type", TypeSize: 1}}, Vals: []uint64{0, 32, 64}, BitMask: true},
@@ -26979,7 +27204,13 @@ var structDescs_386 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &StructType{Key: StructKey{Name: "usb_string_descriptor"}, FldName: "data"},
+ &UnionType{Key: StructKey{Name: "usb_string_descriptor"}, FldName: "data"},
+ }}},
+ {Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]", TypeSize: 32}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[usb_cdc_ecm_mac]"}, FldName: "data"},
}}},
{Key: StructKey{Name: "vusb_descriptors"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors", TypeSize: 24}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
@@ -26989,6 +27220,16 @@ var structDescs_386 = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_hs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_CLASS, USB_DT_HUB, usb_hub_descriptor_hs]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_ss", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_CLASS, USB_DT_SS_HUB, usb_hub_descriptor_ss]"}}},
}}},
+ {Key: StructKey{Name: "vusb_descriptors_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_cdc_ecm", TypeSize: 12}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_DT_STRING", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}}},
+ }}},
+ {Key: StructKey{Name: "vusb_descriptors_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_cdc_ncm", TypeSize: 12}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_DT_STRING", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}}},
+ }}},
{Key: StructKey{Name: "vusb_descriptors_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_hid", TypeSize: 20}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
@@ -27007,17 +27248,17 @@ var structDescs_386 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
- {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]", TypeSize: 7}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]", TypeSize: 7}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 1},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_CUR, array[int8, 1:3]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_CUR, array[int8, 1:3]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
@@ -27067,6 +27308,30 @@ var structDescs_386 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 137},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 135},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 131},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]", TypeSize: 10}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 133},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "data", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]", TypeSize: 34}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 128},
@@ -27163,7 +27428,7 @@ var structDescs_386 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "vusb_responses"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses", TypeSize: 92}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_responses"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses", TypeSize: 88}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "get_interface", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
@@ -27175,7 +27440,6 @@ var structDescs_386 = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "audio_UAC_GET_MEM", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_MEM, array[int8, 3]]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_USB_REQ_GET_STATUS_hub", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_hub_status]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_USB_REQ_GET_STATUS_port", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_port_status]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cdc_USB_CDC_GET_NTB_PARAMETERS", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_MII_REG", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_MII_REG, int16]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_STATMNGSTS_REG", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_STATMNGSTS_REG, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_EEPROM", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_EEPROM, array[int8, 2]]"}}},
@@ -27188,13 +27452,30 @@ var structDescs_386 = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_GPIOS", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_GPIOS, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_SW_PHY_STATUS", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_SW_PHY_STATUS, int8]"}}},
}}},
+ {Key: StructKey{Name: "vusb_responses_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_cdc_ecm", TypeSize: 16}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
+ }}},
+ {Key: StructKey{Name: "vusb_responses_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_cdc_ncm", TypeSize: 36}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_PARAMETERS", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_INPUT_SIZE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_FORMAT", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_MAX_DATAGRAM_SIZE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_CRC_MODE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]"}}},
+ }}},
{Key: StructKey{Name: "vusb_responses_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_hid", TypeSize: 24}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_REPORT", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_PROTOCOL", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_PROTOCOL", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]"}}},
}}},
{Key: StructKey{Name: "vusb_responses_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_printer", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
@@ -39241,6 +39522,11 @@ var syscalls_386 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 4}}, Path: []string{"buf"}},
}},
+ {NR: 3, Name: "read$char_usb", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"buf"}},
+ }},
{NR: 3, Name: "read$eventfd", CallName: "read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_event", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "val", TypeSize: 4}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}},
@@ -43089,6 +43375,11 @@ var syscalls_386 = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 4}}, ValuesPerProc: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}, Val: 2},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_open_dev$char_usb", CallName: "syz_open_dev", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dev", TypeSize: 4}}, Val: 12},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "major", TypeSize: 4}}, Val: 180},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minor", TypeSize: 4}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_open_dev$dmmidi", CallName: "syz_open_dev", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/dmmidi#\x00"}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "id", TypeSize: 4}}},
@@ -43297,6 +43588,18 @@ var syscalls_386 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_usb_connect$cdc_ecm", CallName: "syz_usb_connect", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 4}}, Path: []string{"dev"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor_cdc_ecm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ecm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_usb_connect$cdc_ncm", CallName: "syz_usb_connect", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 4}}, Path: []string{"dev"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor_cdc_ncm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ncm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_usb_connect$hid", CallName: "syz_usb_connect", Args: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 4}}, Path: []string{"dev"}},
@@ -43314,6 +43617,16 @@ var syscalls_386 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_responses"}}},
}},
+ {Name: "syz_usb_control_io$cdc_ecm", CallName: "syz_usb_control_io", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ecm", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_cdc_ecm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_responses_cdc_ecm"}}},
+ }},
+ {Name: "syz_usb_control_io$cdc_ncm", CallName: "syz_usb_control_io", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ncm", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_cdc_ncm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_responses_cdc_ncm"}}},
+ }},
{Name: "syz_usb_control_io$hid", CallName: "syz_usb_control_io", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_hid", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_hid"}}},
@@ -44215,6 +44528,11 @@ var syscalls_386 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"threaded\x00"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"buf"}},
}},
+ {NR: 4, Name: "write$char_usb", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"buf"}},
+ }},
{NR: 4, Name: "write$evdev", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_evdev", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "input_event"}}}},
@@ -44946,6 +45264,8 @@ var consts_386 = []ConstValue{
{Name: "CAPI_SELECT_B_PROTOCOL", Value: 65},
{Name: "CAPI_SET_FLAGS", Value: 2147762980},
{Name: "CAP_LAST_CAP", Value: 37},
+ {Name: "CDC_NCM_COMM_ALTSETTING_NCM"},
+ {Name: "CDC_NCM_DATA_ALTSETTING_NCM", Value: 1},
{Name: "CDO_AUTO_CLOSE", Value: 1},
{Name: "CDO_AUTO_EJECT", Value: 2},
{Name: "CDO_CHECK_TYPE", Value: 16},
@@ -46010,6 +46330,7 @@ var consts_386 = []ConstValue{
{Name: "HID_REPORT_ID_UNKNOWN", Value: 4294967295},
{Name: "HID_REPORT_TYPE_MAX", Value: 3},
{Name: "HID_REPORT_TYPE_MIN", Value: 1},
+ {Name: "HID_REQ_GET_PROTOCOL", Value: 3},
{Name: "HID_REQ_GET_REPORT", Value: 1},
{Name: "HUB_CHANGE_LOCAL_POWER", Value: 1},
{Name: "HUB_CHANGE_OVERCURRENT", Value: 2},
@@ -50316,6 +50637,10 @@ var consts_386 = []ConstValue{
{Name: "USB_CDC_COUNTRY_TYPE", Value: 7},
{Name: "USB_CDC_DMM_TYPE", Value: 20},
{Name: "USB_CDC_ETHERNET_TYPE", Value: 15},
+ {Name: "USB_CDC_GET_CRC_MODE", Value: 137},
+ {Name: "USB_CDC_GET_MAX_DATAGRAM_SIZE", Value: 135},
+ {Name: "USB_CDC_GET_NTB_FORMAT", Value: 131},
+ {Name: "USB_CDC_GET_NTB_INPUT_SIZE", Value: 133},
{Name: "USB_CDC_GET_NTB_PARAMETERS", Value: 128},
{Name: "USB_CDC_HEADER_TYPE"},
{Name: "USB_CDC_MBIM_EXTENDED_TYPE", Value: 28},
@@ -50325,8 +50650,11 @@ var consts_386 = []ConstValue{
{Name: "USB_CDC_NCM_TYPE", Value: 26},
{Name: "USB_CDC_NETWORK_TERMINAL_TYPE", Value: 10},
{Name: "USB_CDC_OBEX_TYPE", Value: 21},
+ {Name: "USB_CDC_PROTO_NONE"},
+ {Name: "USB_CDC_SUBCLASS_ETHERNET", Value: 6},
+ {Name: "USB_CDC_SUBCLASS_NCM", Value: 13},
{Name: "USB_CDC_UNION_TYPE", Value: 6},
- {Name: "USB_CDC_WHCM_TYPE", Value: 17},
+ {Name: "USB_CLASS_COMM", Value: 2},
{Name: "USB_CLASS_HID", Value: 3},
{Name: "USB_CLASS_PRINTER", Value: 7},
{Name: "USB_CONFIG_ATT_BATTERY", Value: 16},
@@ -50366,6 +50694,11 @@ var consts_386 = []ConstValue{
{Name: "USB_DT_STRING", Value: 3},
{Name: "USB_DT_WIRELESS_ENDPOINT_COMP", Value: 17},
{Name: "USB_DT_WIRE_ADAPTER", Value: 33},
+ {Name: "USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES", Value: 2},
+ {Name: "USB_ENDPOINT_CDC_ECM_IN_ADDRESS", Value: 130},
+ {Name: "USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS", Value: 129},
+ {Name: "USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES", Value: 3},
+ {Name: "USB_ENDPOINT_CDC_ECM_OUT_ADDRESS", Value: 3},
{Name: "USB_ENDPOINT_HID_ATTRIBUTES", Value: 3},
{Name: "USB_ENDPOINT_HID_IN_ADDRESS", Value: 129},
{Name: "USB_ENDPOINT_HID_OUT_ADDRESS", Value: 2},
@@ -50397,6 +50730,7 @@ var consts_386 = []ConstValue{
{Name: "USB_LOW_SPEED_OPERATION", Value: 1},
{Name: "USB_LPM_SUPPORT", Value: 2},
{Name: "USB_LTM_SUPPORT", Value: 2},
+ {Name: "USB_MAJOR", Value: 180},
{Name: "USB_PORT_STAT_CONNECTION", Value: 1},
{Name: "USB_PORT_STAT_C_BH_RESET", Value: 32},
{Name: "USB_PORT_STAT_C_CONFIG_ERROR", Value: 128},
@@ -52223,4 +52557,4 @@ var consts_386 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_386 = "eb22b8a389910e3ec878475738f280bd61b00a09"
+const revision_386 = "6c600dc9e424904f3bf19b9e8ade5a7d397827a9"
diff --git a/sys/linux/gen/amd64.go b/sys/linux/gen/amd64.go
index 8db199c8e..00ec52fee 100644
--- a/sys/linux/gen/amd64.go
+++ b/sys/linux/gen/amd64.go
@@ -40,6 +40,7 @@ var resources_amd64 = []*ResourceDesc{
{Name: "fd_cgroup_pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_pid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_subtree", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_subtree"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_type", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_type"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_char_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_char_usb"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_dma_buf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dma_buf"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dmabuf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dmabuf"}, Values: []uint64{18446744073709551615}},
@@ -112,6 +113,8 @@ var resources_amd64 = []*ResourceDesc{
{Name: "fd_uhid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_uhid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_uinput", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_uinput"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_usb_cdc_ecm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_cdc_ecm"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_usb_cdc_ncm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_cdc_ncm"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb_hid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_hid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb_printer", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_printer"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usbmon", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_usbmon"}, Values: []uint64{18446744073709551615}},
@@ -25714,11 +25717,12 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 2},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_acm_caps", FldName: "bmCapabilities", TypeSize: 1}}, Vals: []uint64{1, 2, 4, 8}, BitMask: true},
}}},
- {Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_descriptor", TypeSize: 4}, Fields: []Type{
+ {Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_descriptor", TypeSize: 5}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_caps", FldName: "bmCapabilities", TypeSize: 1}}, Vals: []uint64{1, 2}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDataInterface", TypeSize: 1}}},
}}},
{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_country_functional_desc", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
@@ -25735,40 +25739,42 @@ var structDescs_amd64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxCommand", TypeSize: 2}}},
}}},
+ {Key: StructKey{Name: "usb_cdc_ecm_mac"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ecm_mac", TypeSize: 24}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data0", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data1", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data2", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_ecm_mbm_guid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ecm_mbm_guid", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "id0", TypeSize: 8}}, Val: 94397490813999011},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "id1", TypeSize: 8}}, Val: 3042602437899716518},
+ }}},
{Key: StructKey{Name: "usb_cdc_ether_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ether_desc", TypeSize: 13}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 15},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iMACAddress", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iMACAddress", TypeSize: 1}}, Val: 1},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "bmEthernetStatistics", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxSegmentSize", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wNumberMCFilters", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumberPowerFilters", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "usb_cdc_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_generic", IsVarlen: true}, Fields: []Type{
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 17, 18, 19, 20, 21, 26, 27, 28}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "usb_cdc_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header", IsVarlen: true}, Fields: []Type{
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "items", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_item"}}, Kind: 1, RangeEnd: 16},
- }}},
{Key: StructKey{Name: "usb_cdc_header_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_desc", TypeSize: 5}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdCDC", TypeSize: 2}}},
}}},
- {Key: StructKey{Name: "usb_cdc_header_item"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_item", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_cdc_generic"}, FldName: "generic"},
+ {Key: StructKey{Name: "usb_cdc_header_ethernet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ethernet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_union_desc_t[0, 0]"}, FldName: "union"},
&StructType{Key: StructKey{Name: "usb_cdc_header_desc"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "other", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_ethernet_other"}}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_header_ethernet_other"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ethernet_other", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, FldName: "call_mgmt"},
&StructType{Key: StructKey{Name: "usb_cdc_acm_descriptor"}, FldName: "acm"},
- &StructType{Key: StructKey{Name: "usb_cdc_union_desc"}, FldName: "union"},
&StructType{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, FldName: "country_functional"},
&StructType{Key: StructKey{Name: "usb_cdc_network_terminal_desc"}, FldName: "network_terminal"},
- &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
&StructType{Key: StructKey{Name: "usb_cdc_dmm_desc"}, FldName: "dmm"},
&StructType{Key: StructKey{Name: "usb_cdc_mdlm_desc"}, FldName: "mdlm"},
&StructType{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, FldName: "mdlm_detail"},
@@ -25777,6 +25783,25 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "usb_cdc_mbim_desc"}, FldName: "mbim"},
&StructType{Key: StructKey{Name: "usb_cdc_mbim_extended_desc"}, FldName: "mbim_extended"},
}}},
+ {Key: StructKey{Name: "usb_cdc_header_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_union_desc_t[0, 1]"}, FldName: "union"},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_desc"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ncm_desc"}, FldName: "ncm"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "other", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_ncm_other"}}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_header_ncm_other"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ncm_other", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, FldName: "call_mgmt"},
+ &StructType{Key: StructKey{Name: "usb_cdc_acm_descriptor"}, FldName: "acm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, FldName: "country_functional"},
+ &StructType{Key: StructKey{Name: "usb_cdc_network_terminal_desc"}, FldName: "network_terminal"},
+ &StructType{Key: StructKey{Name: "usb_cdc_dmm_desc"}, FldName: "dmm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mdlm_desc"}, FldName: "mdlm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, FldName: "mdlm_detail"},
+ &StructType{Key: StructKey{Name: "usb_cdc_obex_desc"}, FldName: "obex"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mbim_desc"}, FldName: "mbim"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mbim_extended_desc"}, FldName: "mbim_extended"},
+ }}},
{Key: StructKey{Name: "usb_cdc_mbim_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_mbim_desc", TypeSize: 12}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
@@ -25801,7 +25826,7 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 18},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "bGUID", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "usb_cdc_ecm_mbm_guid"}, FldName: "bGUID"},
}}},
{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_mdlm_detail_desc", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
@@ -25846,24 +25871,60 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 21},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
}}},
- {Key: StructKey{Name: "usb_cdc_union_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_cdc_union_desc_t[0, 0]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc_t[0, 0]", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bMasterInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bSlaveInterface0", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "slave_interfaces", IsVarlen: true}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_union_desc_t[0, 1]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc_t[0, 1]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 6},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMasterInterface0", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSlaveInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bMasterInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bSlaveInterface0", TypeSize: 1}}, Val: 1},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "slave_interfaces", IsVarlen: true}, Kind: 1, RangeEnd: 6},
}}},
{Key: StructKey{Name: "usb_config_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_config_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_hid", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_config_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumInterfaces", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bConfigurationValue", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptors_cdc_ncm"}, FldName: "interfaces"},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumInterfaces", TypeSize: 1}}, Path: []string{"interfaces"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bConfigurationValue", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_cdc_ecm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25874,7 +25935,7 @@ var structDescs_amd64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_hid"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25885,7 +25946,7 @@ var structDescs_amd64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_printer"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25894,7 +25955,7 @@ var structDescs_amd64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 4},
}}},
{Key: StructKey{Name: "usb_dev_cap"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_dev_cap", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_generic_cap_descriptor"}, FldName: "generic"},
@@ -25908,11 +25969,17 @@ var structDescs_amd64 = []*KeyedStruct{
{Key: StructKey{Name: "usb_device_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_device_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_device_descriptor_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]"}, FldName: "inner"},
+ }}},
{Key: StructKey{Name: "usb_device_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_hid", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 64, array[usb_config_descriptor_hid, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_device_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
@@ -25921,13 +25988,13 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
@@ -25938,36 +26005,79 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_hid"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1008},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 27671},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42152},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_printer"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
+ {Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42145},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_cdc_ecm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42145},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_cdc_ncm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[flags[usb_endpoint_addresses, int8], flags[usb_endpoint_attributes, int8], array[usb_endpoint_extra_descriptor, 0:2]]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_in", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_notify", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_out", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor_hid_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_hid_in", TypeSize: 9}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]"}, FldName: "inner"},
}}},
@@ -25980,12 +26090,45 @@ var structDescs_amd64 = []*KeyedStruct{
{Key: StructKey{Name: "usb_endpoint_descriptor_printer_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_printer_out", TypeSize: 9}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_PRINTER_OUT_ADDRESS, int8], const[USB_ENDPOINT_PRINTER_ATTRIBUTES, int8], void]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 130},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 129},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 129},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25996,7 +26139,7 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -26007,7 +26150,7 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 130},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -26018,7 +26161,7 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 1},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -26029,12 +26172,21 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_endpoint_addresses", FldName: "bEndpointAddress", TypeSize: 1}}, Vals: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 128}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_endpoint_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 0, 16, 0, 4, 8, 12, 0, 16, 16}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_endpoint_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "notify", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}}, Kind: 1, RangeEnd: 1},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, FldName: "out"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ncm_data"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_cdc_ncm_data", TypeSize: 18}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, FldName: "out"},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptors_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_hid", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_hid_in"}, FldName: "in"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "out", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_hid_out"}}, Kind: 1, RangeEnd: 1},
@@ -26104,33 +26256,36 @@ var structDescs_amd64 = []*KeyedStruct{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_hub_change_flags", FldName: "wHubChange", TypeSize: 2}}, Vals: []uint64{1, 2}, BitMask: true},
}}},
{Key: StructKey{Name: "usb_interface_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_interface_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_hid", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_interface_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, FldName: "inner"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_interface_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "endpoints", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor"}}, Kind: 1, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ncm"}, FldName: "extra"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}, FldName: "endpoints"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 3},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_hid_protocols", FldName: "bInterfaceProtocol", TypeSize: 1}}, Vals: []uint64{0, 1, 2}, BitMask: true},
@@ -26138,12 +26293,12 @@ var structDescs_amd64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "usb_hid_descriptor_hid"}, FldName: "extra"},
&StructType{Key: StructKey{Name: "usb_endpoint_descriptors_hid"}, FldName: "endpoints"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 7},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 1},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceProtocol", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 3},
@@ -26151,10 +26306,67 @@ var structDescs_amd64 = []*KeyedStruct{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
&StructType{Key: StructKey{Name: "usb_endpoint_descriptors_printer"}, FldName: "endpoints"},
}}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 2, RangeEnd: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ethernet"}, FldName: "extra"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ecm"}, FldName: "endpoints"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_interface_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "endpoints", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor"}}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "endpoints"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]", TypeSize: 27}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ncm_data"}, FldName: "endpoints"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptors_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptors_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]"}, FldName: "control"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]"}, FldName: "data_nop"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]"}, FldName: "data"},
+ }}},
{Key: StructKey{Name: "usb_interface_extra_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_extra_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_generic_descriptor"}, FldName: "generic"},
&StructType{Key: StructKey{Name: "usb_hid_descriptor_hid"}, FldName: "hid_hid"},
- &StructType{Key: StructKey{Name: "usb_cdc_header"}, FldName: "usb_cdc"},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ethernet"}, FldName: "usb_cdc"},
}}},
{Key: StructKey{Name: "usb_port_status"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_port_status", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_port_status_flags", FldName: "wPortStatus", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 2048, 4096, 480, 512, 7168, 0, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352}},
@@ -26177,7 +26389,7 @@ var structDescs_amd64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceClass", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceSubClass", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumConfigurations", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bRESERVED", TypeSize: 1}}},
}}},
@@ -26210,11 +26422,24 @@ var structDescs_amd64 = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "bmSublinkSpeedAttr", IsVarlen: true}, Type: &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_ssp_cap_sublink_speeds", TypeSize: 4}}, Vals: []uint64{15, 48, 192, 16128, 49152, 16711680}, BitMask: true}, Kind: 1, RangeEnd: 6},
}}},
{Key: StructKey{Name: "usb_string_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]"}, FldName: "lang_id"},
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[array[int8]]"}, FldName: "string"},
+ }}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[array[int8]]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_lang_ids", FldName: "lang_id", TypeSize: 2}}, Vals: []uint64{1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, 10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1101, 1068, 2092, 1069, 1059, 1093, 1026, 1109, 1027, 1028, 2052, 3076, 4100, 5124, 1050, 1029, 1030, 1043, 2067, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1065, 1035, 1036, 2060, 3084, 4108, 5132, 6156, 1079, 1031, 2055, 3079, 4103, 5127, 1032, 1095, 1037, 1081, 1038, 1039, 1057, 1040, 2064, 1041, 1099, 2144, 1087, 1111, 1042, 2066, 1062, 1063, 2087, 1071, 1086, 2110, 1100, 1112, 1102, 2145, 1044, 2068, 1096, 1045, 1046, 2070, 1094, 1048, 1049, 1103, 3098, 2074, 1113, 1051, 1060, 1034, 2058, 3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, 13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1072, 1089, 1053, 2077, 1097, 1092, 1098, 1054, 1055, 1058, 1056, 2080, 1091, 2115, 1066, 1279, 61695, 62719, 63743, 64767}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]", TypeSize: 4}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_lang_ids", FldName: "data", TypeSize: 2}}, Vals: []uint64{1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, 10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1101, 1068, 2092, 1069, 1059, 1093, 1026, 1109, 1027, 1028, 2052, 3076, 4100, 5124, 1050, 1029, 1030, 1043, 2067, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1065, 1035, 1036, 2060, 3084, 4108, 5132, 6156, 1079, 1031, 2055, 3079, 4103, 5127, 1032, 1095, 1037, 1081, 1038, 1039, 1057, 1040, 2064, 1041, 1099, 2144, 1087, 1111, 1042, 2066, 1062, 1063, 2087, 1071, 1086, 2110, 1100, 1112, 1102, 2145, 1044, 2068, 1096, 1045, 1046, 2070, 1094, 1048, 1049, 1103, 3098, 2074, 1113, 1051, 1060, 1034, 2058, 3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, 13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1072, 1089, 1053, 2077, 1097, 1092, 1098, 1054, 1055, 1058, 1056, 2080, 1091, 2115, 1066, 1279, 61695, 62719, 63743, 64767}},
+ }}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[usb_cdc_ecm_mac]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[usb_cdc_ecm_mac]", TypeSize: 26}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
+ &StructType{Key: StructKey{Name: "usb_cdc_ecm_mac"}, FldName: "data"},
+ }}},
{Key: StructKey{Name: "usb_wireless_cap_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_wireless_cap_descriptor", TypeSize: 11}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 16},
@@ -27315,7 +27540,7 @@ var structDescs_amd64 = []*KeyedStruct{
}}},
{Key: StructKey{Name: "vusb_connect_string_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_connect_string_descriptor", TypeSize: 12}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"str"}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "str", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_string_descriptor"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "str", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "usb_string_descriptor"}}},
}}},
{Key: StructKey{Name: "vusb_descriptor_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptor_generic", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_request_types", FldName: "req_type", TypeSize: 1}}, Vals: []uint64{0, 32, 64}, BitMask: true},
@@ -27357,7 +27582,13 @@ var structDescs_amd64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &StructType{Key: StructKey{Name: "usb_string_descriptor"}, FldName: "data"},
+ &UnionType{Key: StructKey{Name: "usb_string_descriptor"}, FldName: "data"},
+ }}},
+ {Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]", TypeSize: 32}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[usb_cdc_ecm_mac]"}, FldName: "data"},
}}},
{Key: StructKey{Name: "vusb_descriptors"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors", TypeSize: 44}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
@@ -27367,6 +27598,16 @@ var structDescs_amd64 = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_hs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_CLASS, USB_DT_HUB, usb_hub_descriptor_hs]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_ss", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_CLASS, USB_DT_SS_HUB, usb_hub_descriptor_ss]"}}},
}}},
+ {Key: StructKey{Name: "vusb_descriptors_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_cdc_ecm", TypeSize: 20}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_DT_STRING", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}}},
+ }}},
+ {Key: StructKey{Name: "vusb_descriptors_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_cdc_ncm", TypeSize: 20}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_DT_STRING", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}}},
+ }}},
{Key: StructKey{Name: "vusb_descriptors_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_hid", TypeSize: 36}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
@@ -27385,17 +27626,17 @@ var structDescs_amd64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
- {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]", TypeSize: 7}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]", TypeSize: 7}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 1},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_CUR, array[int8, 1:3]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_CUR, array[int8, 1:3]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
@@ -27445,6 +27686,30 @@ var structDescs_amd64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 137},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 135},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 131},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]", TypeSize: 10}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 133},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "data", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]", TypeSize: 34}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 128},
@@ -27541,7 +27806,7 @@ var structDescs_amd64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "vusb_responses"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses", TypeSize: 180}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_responses"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses", TypeSize: 172}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "get_interface", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
@@ -27553,7 +27818,6 @@ var structDescs_amd64 = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "audio_UAC_GET_MEM", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_MEM, array[int8, 3]]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_USB_REQ_GET_STATUS_hub", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_hub_status]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_USB_REQ_GET_STATUS_port", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_port_status]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cdc_USB_CDC_GET_NTB_PARAMETERS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_MII_REG", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_MII_REG, int16]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_STATMNGSTS_REG", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_STATMNGSTS_REG, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_EEPROM", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_EEPROM, array[int8, 2]]"}}},
@@ -27566,13 +27830,30 @@ var structDescs_amd64 = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_GPIOS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_GPIOS, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_SW_PHY_STATUS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_SW_PHY_STATUS, int8]"}}},
}}},
+ {Key: StructKey{Name: "vusb_responses_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_cdc_ecm", TypeSize: 28}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
+ }}},
+ {Key: StructKey{Name: "vusb_responses_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_cdc_ncm", TypeSize: 68}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_PARAMETERS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_INPUT_SIZE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_FORMAT", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_MAX_DATAGRAM_SIZE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_CRC_MODE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]"}}},
+ }}},
{Key: StructKey{Name: "vusb_responses_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_hid", TypeSize: 44}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_REPORT", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_PROTOCOL", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_PROTOCOL", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]"}}},
}}},
{Key: StructKey{Name: "vusb_responses_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_printer", TypeSize: 52}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
@@ -39758,6 +40039,11 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Path: []string{"buf"}},
}},
+ {Name: "read$char_usb", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{Name: "read$eventfd", CallName: "read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_event", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "val", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}},
@@ -43611,6 +43897,11 @@ var syscalls_amd64 = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 8}}, ValuesPerProc: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 8}}, Val: 2},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_open_dev$char_usb", CallName: "syz_open_dev", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dev", TypeSize: 8}}, Val: 12},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "major", TypeSize: 8}}, Val: 180},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minor", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_open_dev$dmmidi", CallName: "syz_open_dev", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/dmmidi#\x00"}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "id", TypeSize: 8}}},
@@ -43819,6 +44110,18 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_usb_connect$cdc_ecm", CallName: "syz_usb_connect", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 8}}, Path: []string{"dev"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor_cdc_ecm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ecm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_usb_connect$cdc_ncm", CallName: "syz_usb_connect", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 8}}, Path: []string{"dev"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor_cdc_ncm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ncm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_usb_connect$hid", CallName: "syz_usb_connect", Args: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 8}}, Path: []string{"dev"}},
@@ -43836,6 +44139,16 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_responses"}}},
}},
+ {Name: "syz_usb_control_io$cdc_ecm", CallName: "syz_usb_control_io", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ecm", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_cdc_ecm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_responses_cdc_ecm"}}},
+ }},
+ {Name: "syz_usb_control_io$cdc_ncm", CallName: "syz_usb_control_io", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ncm", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_cdc_ncm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_responses_cdc_ncm"}}},
+ }},
{Name: "syz_usb_control_io$hid", CallName: "syz_usb_control_io", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_hid", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_hid"}}},
@@ -44737,6 +45050,11 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"threaded\x00"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 8}}, BitSize: 8, Path: []string{"buf"}},
}},
+ {NR: 1, Name: "write$char_usb", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{NR: 1, Name: "write$evdev", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_evdev", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "input_event"}}}},
@@ -45468,6 +45786,8 @@ var consts_amd64 = []ConstValue{
{Name: "CAPI_SELECT_B_PROTOCOL", Value: 65},
{Name: "CAPI_SET_FLAGS", Value: 2147762980},
{Name: "CAP_LAST_CAP", Value: 37},
+ {Name: "CDC_NCM_COMM_ALTSETTING_NCM"},
+ {Name: "CDC_NCM_DATA_ALTSETTING_NCM", Value: 1},
{Name: "CDO_AUTO_CLOSE", Value: 1},
{Name: "CDO_AUTO_EJECT", Value: 2},
{Name: "CDO_CHECK_TYPE", Value: 16},
@@ -46532,6 +46852,7 @@ var consts_amd64 = []ConstValue{
{Name: "HID_REPORT_ID_UNKNOWN", Value: 4294967295},
{Name: "HID_REPORT_TYPE_MAX", Value: 3},
{Name: "HID_REPORT_TYPE_MIN", Value: 1},
+ {Name: "HID_REQ_GET_PROTOCOL", Value: 3},
{Name: "HID_REQ_GET_REPORT", Value: 1},
{Name: "HUB_CHANGE_LOCAL_POWER", Value: 1},
{Name: "HUB_CHANGE_OVERCURRENT", Value: 2},
@@ -50852,6 +51173,10 @@ var consts_amd64 = []ConstValue{
{Name: "USB_CDC_COUNTRY_TYPE", Value: 7},
{Name: "USB_CDC_DMM_TYPE", Value: 20},
{Name: "USB_CDC_ETHERNET_TYPE", Value: 15},
+ {Name: "USB_CDC_GET_CRC_MODE", Value: 137},
+ {Name: "USB_CDC_GET_MAX_DATAGRAM_SIZE", Value: 135},
+ {Name: "USB_CDC_GET_NTB_FORMAT", Value: 131},
+ {Name: "USB_CDC_GET_NTB_INPUT_SIZE", Value: 133},
{Name: "USB_CDC_GET_NTB_PARAMETERS", Value: 128},
{Name: "USB_CDC_HEADER_TYPE"},
{Name: "USB_CDC_MBIM_EXTENDED_TYPE", Value: 28},
@@ -50861,8 +51186,11 @@ var consts_amd64 = []ConstValue{
{Name: "USB_CDC_NCM_TYPE", Value: 26},
{Name: "USB_CDC_NETWORK_TERMINAL_TYPE", Value: 10},
{Name: "USB_CDC_OBEX_TYPE", Value: 21},
+ {Name: "USB_CDC_PROTO_NONE"},
+ {Name: "USB_CDC_SUBCLASS_ETHERNET", Value: 6},
+ {Name: "USB_CDC_SUBCLASS_NCM", Value: 13},
{Name: "USB_CDC_UNION_TYPE", Value: 6},
- {Name: "USB_CDC_WHCM_TYPE", Value: 17},
+ {Name: "USB_CLASS_COMM", Value: 2},
{Name: "USB_CLASS_HID", Value: 3},
{Name: "USB_CLASS_PRINTER", Value: 7},
{Name: "USB_CONFIG_ATT_BATTERY", Value: 16},
@@ -50902,6 +51230,11 @@ var consts_amd64 = []ConstValue{
{Name: "USB_DT_STRING", Value: 3},
{Name: "USB_DT_WIRELESS_ENDPOINT_COMP", Value: 17},
{Name: "USB_DT_WIRE_ADAPTER", Value: 33},
+ {Name: "USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES", Value: 2},
+ {Name: "USB_ENDPOINT_CDC_ECM_IN_ADDRESS", Value: 130},
+ {Name: "USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS", Value: 129},
+ {Name: "USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES", Value: 3},
+ {Name: "USB_ENDPOINT_CDC_ECM_OUT_ADDRESS", Value: 3},
{Name: "USB_ENDPOINT_HID_ATTRIBUTES", Value: 3},
{Name: "USB_ENDPOINT_HID_IN_ADDRESS", Value: 129},
{Name: "USB_ENDPOINT_HID_OUT_ADDRESS", Value: 2},
@@ -50933,6 +51266,7 @@ var consts_amd64 = []ConstValue{
{Name: "USB_LOW_SPEED_OPERATION", Value: 1},
{Name: "USB_LPM_SUPPORT", Value: 2},
{Name: "USB_LTM_SUPPORT", Value: 2},
+ {Name: "USB_MAJOR", Value: 180},
{Name: "USB_PORT_STAT_CONNECTION", Value: 1},
{Name: "USB_PORT_STAT_C_BH_RESET", Value: 32},
{Name: "USB_PORT_STAT_C_CONFIG_ERROR", Value: 128},
@@ -52760,4 +53094,4 @@ var consts_amd64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_amd64 = "b025d70b7713cc48e9ab783fc35e2410b69a5736"
+const revision_amd64 = "e8d337b13b9ae8f911b772c9be47236bc8446da4"
diff --git a/sys/linux/gen/arm.go b/sys/linux/gen/arm.go
index 929a5af9d..fbbafa8ce 100644
--- a/sys/linux/gen/arm.go
+++ b/sys/linux/gen/arm.go
@@ -40,6 +40,7 @@ var resources_arm = []*ResourceDesc{
{Name: "fd_cgroup_pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_pid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_subtree", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_subtree"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_type", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_type"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_char_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_char_usb"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_dma_buf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dma_buf"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dmabuf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dmabuf"}, Values: []uint64{18446744073709551615}},
@@ -112,6 +113,8 @@ var resources_arm = []*ResourceDesc{
{Name: "fd_uhid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_uhid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_uinput", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_uinput"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_usb_cdc_ecm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_cdc_ecm"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_usb_cdc_ncm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_cdc_ncm"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb_hid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_hid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb_printer", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_printer"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usbmon", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_usbmon"}, Values: []uint64{18446744073709551615}},
@@ -25165,11 +25168,12 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 2},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_acm_caps", FldName: "bmCapabilities", TypeSize: 1}}, Vals: []uint64{1, 2, 4, 8}, BitMask: true},
}}},
- {Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_descriptor", TypeSize: 4}, Fields: []Type{
+ {Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_descriptor", TypeSize: 5}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_caps", FldName: "bmCapabilities", TypeSize: 1}}, Vals: []uint64{1, 2}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDataInterface", TypeSize: 1}}},
}}},
{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_country_functional_desc", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
@@ -25186,40 +25190,42 @@ var structDescs_arm = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxCommand", TypeSize: 2}}},
}}},
+ {Key: StructKey{Name: "usb_cdc_ecm_mac"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ecm_mac", TypeSize: 24}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data0", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data1", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data2", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_ecm_mbm_guid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ecm_mbm_guid", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "id0", TypeSize: 8}}, Val: 94397490813999011},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "id1", TypeSize: 8}}, Val: 3042602437899716518},
+ }}},
{Key: StructKey{Name: "usb_cdc_ether_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ether_desc", TypeSize: 13}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 15},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iMACAddress", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iMACAddress", TypeSize: 1}}, Val: 1},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "bmEthernetStatistics", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxSegmentSize", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wNumberMCFilters", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumberPowerFilters", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "usb_cdc_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_generic", IsVarlen: true}, Fields: []Type{
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 17, 18, 19, 20, 21, 26, 27, 28}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "usb_cdc_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header", IsVarlen: true}, Fields: []Type{
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "items", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_item"}}, Kind: 1, RangeEnd: 16},
- }}},
{Key: StructKey{Name: "usb_cdc_header_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_desc", TypeSize: 5}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdCDC", TypeSize: 2}}},
}}},
- {Key: StructKey{Name: "usb_cdc_header_item"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_item", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_cdc_generic"}, FldName: "generic"},
+ {Key: StructKey{Name: "usb_cdc_header_ethernet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ethernet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_union_desc_t[0, 0]"}, FldName: "union"},
&StructType{Key: StructKey{Name: "usb_cdc_header_desc"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "other", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_ethernet_other"}}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_header_ethernet_other"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ethernet_other", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, FldName: "call_mgmt"},
&StructType{Key: StructKey{Name: "usb_cdc_acm_descriptor"}, FldName: "acm"},
- &StructType{Key: StructKey{Name: "usb_cdc_union_desc"}, FldName: "union"},
&StructType{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, FldName: "country_functional"},
&StructType{Key: StructKey{Name: "usb_cdc_network_terminal_desc"}, FldName: "network_terminal"},
- &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
&StructType{Key: StructKey{Name: "usb_cdc_dmm_desc"}, FldName: "dmm"},
&StructType{Key: StructKey{Name: "usb_cdc_mdlm_desc"}, FldName: "mdlm"},
&StructType{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, FldName: "mdlm_detail"},
@@ -25228,6 +25234,25 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "usb_cdc_mbim_desc"}, FldName: "mbim"},
&StructType{Key: StructKey{Name: "usb_cdc_mbim_extended_desc"}, FldName: "mbim_extended"},
}}},
+ {Key: StructKey{Name: "usb_cdc_header_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_union_desc_t[0, 1]"}, FldName: "union"},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_desc"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ncm_desc"}, FldName: "ncm"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "other", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_ncm_other"}}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_header_ncm_other"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ncm_other", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, FldName: "call_mgmt"},
+ &StructType{Key: StructKey{Name: "usb_cdc_acm_descriptor"}, FldName: "acm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, FldName: "country_functional"},
+ &StructType{Key: StructKey{Name: "usb_cdc_network_terminal_desc"}, FldName: "network_terminal"},
+ &StructType{Key: StructKey{Name: "usb_cdc_dmm_desc"}, FldName: "dmm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mdlm_desc"}, FldName: "mdlm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, FldName: "mdlm_detail"},
+ &StructType{Key: StructKey{Name: "usb_cdc_obex_desc"}, FldName: "obex"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mbim_desc"}, FldName: "mbim"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mbim_extended_desc"}, FldName: "mbim_extended"},
+ }}},
{Key: StructKey{Name: "usb_cdc_mbim_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_mbim_desc", TypeSize: 12}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
@@ -25252,7 +25277,7 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 18},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "bGUID", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "usb_cdc_ecm_mbm_guid"}, FldName: "bGUID"},
}}},
{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_mdlm_detail_desc", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
@@ -25297,24 +25322,60 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 21},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
}}},
- {Key: StructKey{Name: "usb_cdc_union_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_cdc_union_desc_t[0, 0]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc_t[0, 0]", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bMasterInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bSlaveInterface0", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "slave_interfaces", IsVarlen: true}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_union_desc_t[0, 1]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc_t[0, 1]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 6},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMasterInterface0", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSlaveInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bMasterInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bSlaveInterface0", TypeSize: 1}}, Val: 1},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "slave_interfaces", IsVarlen: true}, Kind: 1, RangeEnd: 6},
}}},
{Key: StructKey{Name: "usb_config_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_config_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_hid", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_config_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumInterfaces", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bConfigurationValue", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptors_cdc_ncm"}, FldName: "interfaces"},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumInterfaces", TypeSize: 1}}, Path: []string{"interfaces"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bConfigurationValue", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_cdc_ecm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25325,7 +25386,7 @@ var structDescs_arm = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_hid"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25336,7 +25397,7 @@ var structDescs_arm = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_printer"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25345,7 +25406,7 @@ var structDescs_arm = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 4},
}}},
{Key: StructKey{Name: "usb_dev_cap"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_dev_cap", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_generic_cap_descriptor"}, FldName: "generic"},
@@ -25359,11 +25420,17 @@ var structDescs_arm = []*KeyedStruct{
{Key: StructKey{Name: "usb_device_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_device_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_device_descriptor_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]"}, FldName: "inner"},
+ }}},
{Key: StructKey{Name: "usb_device_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_hid", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 64, array[usb_config_descriptor_hid, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_device_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
@@ -25372,13 +25439,13 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
@@ -25389,36 +25456,79 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_hid"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1008},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 27671},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42152},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_printer"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
+ {Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42145},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_cdc_ecm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42145},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_cdc_ncm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[flags[usb_endpoint_addresses, int8], flags[usb_endpoint_attributes, int8], array[usb_endpoint_extra_descriptor, 0:2]]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_in", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_notify", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_out", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor_hid_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_hid_in", TypeSize: 9}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]"}, FldName: "inner"},
}}},
@@ -25431,12 +25541,45 @@ var structDescs_arm = []*KeyedStruct{
{Key: StructKey{Name: "usb_endpoint_descriptor_printer_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_printer_out", TypeSize: 9}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_PRINTER_OUT_ADDRESS, int8], const[USB_ENDPOINT_PRINTER_ATTRIBUTES, int8], void]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 130},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 129},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 129},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25447,7 +25590,7 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25458,7 +25601,7 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 130},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25469,7 +25612,7 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 1},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25480,12 +25623,21 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_endpoint_addresses", FldName: "bEndpointAddress", TypeSize: 1}}, Vals: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 128}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_endpoint_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 0, 16, 0, 4, 8, 12, 0, 16, 16}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_endpoint_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "notify", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}}, Kind: 1, RangeEnd: 1},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, FldName: "out"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ncm_data"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_cdc_ncm_data", TypeSize: 18}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, FldName: "out"},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptors_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_hid", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_hid_in"}, FldName: "in"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "out", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_hid_out"}}, Kind: 1, RangeEnd: 1},
@@ -25555,33 +25707,36 @@ var structDescs_arm = []*KeyedStruct{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_hub_change_flags", FldName: "wHubChange", TypeSize: 2}}, Vals: []uint64{1, 2}, BitMask: true},
}}},
{Key: StructKey{Name: "usb_interface_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_interface_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_hid", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_interface_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, FldName: "inner"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_interface_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "endpoints", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor"}}, Kind: 1, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ncm"}, FldName: "extra"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}, FldName: "endpoints"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 3},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_hid_protocols", FldName: "bInterfaceProtocol", TypeSize: 1}}, Vals: []uint64{0, 1, 2}, BitMask: true},
@@ -25589,12 +25744,12 @@ var structDescs_arm = []*KeyedStruct{
&StructType{Key: StructKey{Name: "usb_hid_descriptor_hid"}, FldName: "extra"},
&StructType{Key: StructKey{Name: "usb_endpoint_descriptors_hid"}, FldName: "endpoints"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 7},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 1},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceProtocol", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 3},
@@ -25602,10 +25757,67 @@ var structDescs_arm = []*KeyedStruct{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
&StructType{Key: StructKey{Name: "usb_endpoint_descriptors_printer"}, FldName: "endpoints"},
}}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 2, RangeEnd: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ethernet"}, FldName: "extra"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ecm"}, FldName: "endpoints"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_interface_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "endpoints", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor"}}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "endpoints"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]", TypeSize: 27}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ncm_data"}, FldName: "endpoints"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptors_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptors_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]"}, FldName: "control"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]"}, FldName: "data_nop"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]"}, FldName: "data"},
+ }}},
{Key: StructKey{Name: "usb_interface_extra_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_extra_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_generic_descriptor"}, FldName: "generic"},
&StructType{Key: StructKey{Name: "usb_hid_descriptor_hid"}, FldName: "hid_hid"},
- &StructType{Key: StructKey{Name: "usb_cdc_header"}, FldName: "usb_cdc"},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ethernet"}, FldName: "usb_cdc"},
}}},
{Key: StructKey{Name: "usb_port_status"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_port_status", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_port_status_flags", FldName: "wPortStatus", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 2048, 4096, 480, 512, 7168, 0, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352}},
@@ -25628,7 +25840,7 @@ var structDescs_arm = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceClass", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceSubClass", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumConfigurations", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bRESERVED", TypeSize: 1}}},
}}},
@@ -25661,11 +25873,24 @@ var structDescs_arm = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "bmSublinkSpeedAttr", IsVarlen: true}, Type: &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_ssp_cap_sublink_speeds", TypeSize: 4}}, Vals: []uint64{15, 48, 192, 16128, 49152, 16711680}, BitMask: true}, Kind: 1, RangeEnd: 6},
}}},
{Key: StructKey{Name: "usb_string_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]"}, FldName: "lang_id"},
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[array[int8]]"}, FldName: "string"},
+ }}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[array[int8]]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_lang_ids", FldName: "lang_id", TypeSize: 2}}, Vals: []uint64{1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, 10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1101, 1068, 2092, 1069, 1059, 1093, 1026, 1109, 1027, 1028, 2052, 3076, 4100, 5124, 1050, 1029, 1030, 1043, 2067, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1065, 1035, 1036, 2060, 3084, 4108, 5132, 6156, 1079, 1031, 2055, 3079, 4103, 5127, 1032, 1095, 1037, 1081, 1038, 1039, 1057, 1040, 2064, 1041, 1099, 2144, 1087, 1111, 1042, 2066, 1062, 1063, 2087, 1071, 1086, 2110, 1100, 1112, 1102, 2145, 1044, 2068, 1096, 1045, 1046, 2070, 1094, 1048, 1049, 1103, 3098, 2074, 1113, 1051, 1060, 1034, 2058, 3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, 13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1072, 1089, 1053, 2077, 1097, 1092, 1098, 1054, 1055, 1058, 1056, 2080, 1091, 2115, 1066, 1279, 61695, 62719, 63743, 64767}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]", TypeSize: 4}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_lang_ids", FldName: "data", TypeSize: 2}}, Vals: []uint64{1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, 10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1101, 1068, 2092, 1069, 1059, 1093, 1026, 1109, 1027, 1028, 2052, 3076, 4100, 5124, 1050, 1029, 1030, 1043, 2067, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1065, 1035, 1036, 2060, 3084, 4108, 5132, 6156, 1079, 1031, 2055, 3079, 4103, 5127, 1032, 1095, 1037, 1081, 1038, 1039, 1057, 1040, 2064, 1041, 1099, 2144, 1087, 1111, 1042, 2066, 1062, 1063, 2087, 1071, 1086, 2110, 1100, 1112, 1102, 2145, 1044, 2068, 1096, 1045, 1046, 2070, 1094, 1048, 1049, 1103, 3098, 2074, 1113, 1051, 1060, 1034, 2058, 3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, 13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1072, 1089, 1053, 2077, 1097, 1092, 1098, 1054, 1055, 1058, 1056, 2080, 1091, 2115, 1066, 1279, 61695, 62719, 63743, 64767}},
+ }}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[usb_cdc_ecm_mac]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[usb_cdc_ecm_mac]", TypeSize: 26}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
+ &StructType{Key: StructKey{Name: "usb_cdc_ecm_mac"}, FldName: "data"},
+ }}},
{Key: StructKey{Name: "usb_wireless_cap_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_wireless_cap_descriptor", TypeSize: 11}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 16},
@@ -26743,7 +26968,7 @@ var structDescs_arm = []*KeyedStruct{
}}},
{Key: StructKey{Name: "vusb_connect_string_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_connect_string_descriptor", TypeSize: 8}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"str"}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "str", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "usb_string_descriptor"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "str", TypeSize: 4}, Type: &UnionType{Key: StructKey{Name: "usb_string_descriptor"}}},
}}},
{Key: StructKey{Name: "vusb_descriptor_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptor_generic", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_request_types", FldName: "req_type", TypeSize: 1}}, Vals: []uint64{0, 32, 64}, BitMask: true},
@@ -26785,7 +27010,13 @@ var structDescs_arm = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &StructType{Key: StructKey{Name: "usb_string_descriptor"}, FldName: "data"},
+ &UnionType{Key: StructKey{Name: "usb_string_descriptor"}, FldName: "data"},
+ }}},
+ {Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]", TypeSize: 32}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[usb_cdc_ecm_mac]"}, FldName: "data"},
}}},
{Key: StructKey{Name: "vusb_descriptors"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors", TypeSize: 24}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
@@ -26795,6 +27026,16 @@ var structDescs_arm = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_hs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_CLASS, USB_DT_HUB, usb_hub_descriptor_hs]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_ss", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_CLASS, USB_DT_SS_HUB, usb_hub_descriptor_ss]"}}},
}}},
+ {Key: StructKey{Name: "vusb_descriptors_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_cdc_ecm", TypeSize: 12}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_DT_STRING", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}}},
+ }}},
+ {Key: StructKey{Name: "vusb_descriptors_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_cdc_ncm", TypeSize: 12}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_DT_STRING", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}}},
+ }}},
{Key: StructKey{Name: "vusb_descriptors_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_hid", TypeSize: 20}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
@@ -26813,17 +27054,17 @@ var structDescs_arm = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
- {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]", TypeSize: 7}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]", TypeSize: 7}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 1},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_CUR, array[int8, 1:3]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_CUR, array[int8, 1:3]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
@@ -26873,6 +27114,30 @@ var structDescs_arm = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 137},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 135},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 131},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]", TypeSize: 10}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 133},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "data", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]", TypeSize: 34}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 128},
@@ -26969,7 +27234,7 @@ var structDescs_arm = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "vusb_responses"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses", TypeSize: 92}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_responses"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses", TypeSize: 88}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "get_interface", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
@@ -26981,7 +27246,6 @@ var structDescs_arm = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "audio_UAC_GET_MEM", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_MEM, array[int8, 3]]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_USB_REQ_GET_STATUS_hub", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_hub_status]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_USB_REQ_GET_STATUS_port", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_port_status]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cdc_USB_CDC_GET_NTB_PARAMETERS", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_MII_REG", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_MII_REG, int16]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_STATMNGSTS_REG", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_STATMNGSTS_REG, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_EEPROM", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_EEPROM, array[int8, 2]]"}}},
@@ -26994,13 +27258,30 @@ var structDescs_arm = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_GPIOS", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_GPIOS, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_SW_PHY_STATUS", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_SW_PHY_STATUS, int8]"}}},
}}},
+ {Key: StructKey{Name: "vusb_responses_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_cdc_ecm", TypeSize: 16}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
+ }}},
+ {Key: StructKey{Name: "vusb_responses_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_cdc_ncm", TypeSize: 36}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_PARAMETERS", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_INPUT_SIZE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_FORMAT", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_MAX_DATAGRAM_SIZE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_CRC_MODE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]"}}},
+ }}},
{Key: StructKey{Name: "vusb_responses_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_hid", TypeSize: 24}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_REPORT", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_PROTOCOL", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_PROTOCOL", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]"}}},
}}},
{Key: StructKey{Name: "vusb_responses_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_printer", TypeSize: 28}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
@@ -38902,6 +39183,11 @@ var syscalls_arm = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 4}}, Path: []string{"buf"}},
}},
+ {NR: 3, Name: "read$char_usb", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"buf"}},
+ }},
{NR: 3, Name: "read$eventfd", CallName: "read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_event", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "val", TypeSize: 4}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}},
@@ -42745,6 +43031,11 @@ var syscalls_arm = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 4}}, ValuesPerProc: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 4}}, Val: 2},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_open_dev$char_usb", CallName: "syz_open_dev", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dev", TypeSize: 4}}, Val: 12},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "major", TypeSize: 4}}, Val: 180},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minor", TypeSize: 4}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_open_dev$dmmidi", CallName: "syz_open_dev", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/dmmidi#\x00"}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "id", TypeSize: 4}}},
@@ -42953,6 +43244,18 @@ var syscalls_arm = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_usb_connect$cdc_ecm", CallName: "syz_usb_connect", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 4}}, Path: []string{"dev"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor_cdc_ecm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ecm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_usb_connect$cdc_ncm", CallName: "syz_usb_connect", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 4}}, Path: []string{"dev"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor_cdc_ncm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ncm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_usb_connect$hid", CallName: "syz_usb_connect", Args: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 4}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 4}}, Path: []string{"dev"}},
@@ -42970,6 +43273,16 @@ var syscalls_arm = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_responses"}}},
}},
+ {Name: "syz_usb_control_io$cdc_ecm", CallName: "syz_usb_control_io", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ecm", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_cdc_ecm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_responses_cdc_ecm"}}},
+ }},
+ {Name: "syz_usb_control_io$cdc_ncm", CallName: "syz_usb_control_io", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ncm", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_cdc_ncm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_responses_cdc_ncm"}}},
+ }},
{Name: "syz_usb_control_io$hid", CallName: "syz_usb_control_io", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_hid", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 4}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_hid"}}},
@@ -43864,6 +44177,11 @@ var syscalls_arm = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"threaded\x00"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"buf"}},
}},
+ {NR: 4, Name: "write$char_usb", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 4}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 4}}, Path: []string{"buf"}},
+ }},
{NR: 4, Name: "write$evdev", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_evdev", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 4}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "input_event"}}}},
@@ -44586,6 +44904,8 @@ var consts_arm = []ConstValue{
{Name: "CAPI_SELECT_B_PROTOCOL", Value: 65},
{Name: "CAPI_SET_FLAGS", Value: 2147762980},
{Name: "CAP_LAST_CAP", Value: 37},
+ {Name: "CDC_NCM_COMM_ALTSETTING_NCM"},
+ {Name: "CDC_NCM_DATA_ALTSETTING_NCM", Value: 1},
{Name: "CDO_AUTO_CLOSE", Value: 1},
{Name: "CDO_AUTO_EJECT", Value: 2},
{Name: "CDO_CHECK_TYPE", Value: 16},
@@ -45650,6 +45970,7 @@ var consts_arm = []ConstValue{
{Name: "HID_REPORT_ID_UNKNOWN", Value: 4294967295},
{Name: "HID_REPORT_TYPE_MAX", Value: 3},
{Name: "HID_REPORT_TYPE_MIN", Value: 1},
+ {Name: "HID_REQ_GET_PROTOCOL", Value: 3},
{Name: "HID_REQ_GET_REPORT", Value: 1},
{Name: "HUB_CHANGE_LOCAL_POWER", Value: 1},
{Name: "HUB_CHANGE_OVERCURRENT", Value: 2},
@@ -49903,6 +50224,10 @@ var consts_arm = []ConstValue{
{Name: "USB_CDC_COUNTRY_TYPE", Value: 7},
{Name: "USB_CDC_DMM_TYPE", Value: 20},
{Name: "USB_CDC_ETHERNET_TYPE", Value: 15},
+ {Name: "USB_CDC_GET_CRC_MODE", Value: 137},
+ {Name: "USB_CDC_GET_MAX_DATAGRAM_SIZE", Value: 135},
+ {Name: "USB_CDC_GET_NTB_FORMAT", Value: 131},
+ {Name: "USB_CDC_GET_NTB_INPUT_SIZE", Value: 133},
{Name: "USB_CDC_GET_NTB_PARAMETERS", Value: 128},
{Name: "USB_CDC_HEADER_TYPE"},
{Name: "USB_CDC_MBIM_EXTENDED_TYPE", Value: 28},
@@ -49912,8 +50237,11 @@ var consts_arm = []ConstValue{
{Name: "USB_CDC_NCM_TYPE", Value: 26},
{Name: "USB_CDC_NETWORK_TERMINAL_TYPE", Value: 10},
{Name: "USB_CDC_OBEX_TYPE", Value: 21},
+ {Name: "USB_CDC_PROTO_NONE"},
+ {Name: "USB_CDC_SUBCLASS_ETHERNET", Value: 6},
+ {Name: "USB_CDC_SUBCLASS_NCM", Value: 13},
{Name: "USB_CDC_UNION_TYPE", Value: 6},
- {Name: "USB_CDC_WHCM_TYPE", Value: 17},
+ {Name: "USB_CLASS_COMM", Value: 2},
{Name: "USB_CLASS_HID", Value: 3},
{Name: "USB_CLASS_PRINTER", Value: 7},
{Name: "USB_CONFIG_ATT_BATTERY", Value: 16},
@@ -49953,6 +50281,11 @@ var consts_arm = []ConstValue{
{Name: "USB_DT_STRING", Value: 3},
{Name: "USB_DT_WIRELESS_ENDPOINT_COMP", Value: 17},
{Name: "USB_DT_WIRE_ADAPTER", Value: 33},
+ {Name: "USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES", Value: 2},
+ {Name: "USB_ENDPOINT_CDC_ECM_IN_ADDRESS", Value: 130},
+ {Name: "USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS", Value: 129},
+ {Name: "USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES", Value: 3},
+ {Name: "USB_ENDPOINT_CDC_ECM_OUT_ADDRESS", Value: 3},
{Name: "USB_ENDPOINT_HID_ATTRIBUTES", Value: 3},
{Name: "USB_ENDPOINT_HID_IN_ADDRESS", Value: 129},
{Name: "USB_ENDPOINT_HID_OUT_ADDRESS", Value: 2},
@@ -49984,6 +50317,7 @@ var consts_arm = []ConstValue{
{Name: "USB_LOW_SPEED_OPERATION", Value: 1},
{Name: "USB_LPM_SUPPORT", Value: 2},
{Name: "USB_LTM_SUPPORT", Value: 2},
+ {Name: "USB_MAJOR", Value: 180},
{Name: "USB_PORT_STAT_CONNECTION", Value: 1},
{Name: "USB_PORT_STAT_C_BH_RESET", Value: 32},
{Name: "USB_PORT_STAT_C_CONFIG_ERROR", Value: 128},
@@ -51800,4 +52134,4 @@ var consts_arm = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm = "fdb9cb5b71481f79ff86d824721def50b72fafa5"
+const revision_arm = "c0010b3d05cb5d0ca1af17dacf9349c9cdf38c9e"
diff --git a/sys/linux/gen/arm64.go b/sys/linux/gen/arm64.go
index 9796420cb..f36e0ef16 100644
--- a/sys/linux/gen/arm64.go
+++ b/sys/linux/gen/arm64.go
@@ -40,6 +40,7 @@ var resources_arm64 = []*ResourceDesc{
{Name: "fd_cgroup_pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_pid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_subtree", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_subtree"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_type", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_type"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_char_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_char_usb"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_dma_buf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dma_buf"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dmabuf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dmabuf"}, Values: []uint64{18446744073709551615}},
@@ -112,6 +113,8 @@ var resources_arm64 = []*ResourceDesc{
{Name: "fd_uhid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_uhid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_uinput", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_uinput"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_usb_cdc_ecm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_cdc_ecm"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_usb_cdc_ncm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_cdc_ncm"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb_hid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_hid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb_printer", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_printer"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usbmon", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_usbmon"}, Values: []uint64{18446744073709551615}},
@@ -25531,11 +25534,12 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 2},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_acm_caps", FldName: "bmCapabilities", TypeSize: 1}}, Vals: []uint64{1, 2, 4, 8}, BitMask: true},
}}},
- {Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_descriptor", TypeSize: 4}, Fields: []Type{
+ {Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_descriptor", TypeSize: 5}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_caps", FldName: "bmCapabilities", TypeSize: 1}}, Vals: []uint64{1, 2}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDataInterface", TypeSize: 1}}},
}}},
{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_country_functional_desc", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
@@ -25552,40 +25556,42 @@ var structDescs_arm64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxCommand", TypeSize: 2}}},
}}},
+ {Key: StructKey{Name: "usb_cdc_ecm_mac"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ecm_mac", TypeSize: 24}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data0", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data1", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data2", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_ecm_mbm_guid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ecm_mbm_guid", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "id0", TypeSize: 8}}, Val: 94397490813999011},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "id1", TypeSize: 8}}, Val: 3042602437899716518},
+ }}},
{Key: StructKey{Name: "usb_cdc_ether_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ether_desc", TypeSize: 13}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 15},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iMACAddress", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iMACAddress", TypeSize: 1}}, Val: 1},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "bmEthernetStatistics", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxSegmentSize", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wNumberMCFilters", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumberPowerFilters", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "usb_cdc_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_generic", IsVarlen: true}, Fields: []Type{
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 17, 18, 19, 20, 21, 26, 27, 28}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "usb_cdc_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header", IsVarlen: true}, Fields: []Type{
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "items", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_item"}}, Kind: 1, RangeEnd: 16},
- }}},
{Key: StructKey{Name: "usb_cdc_header_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_desc", TypeSize: 5}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdCDC", TypeSize: 2}}},
}}},
- {Key: StructKey{Name: "usb_cdc_header_item"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_item", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_cdc_generic"}, FldName: "generic"},
+ {Key: StructKey{Name: "usb_cdc_header_ethernet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ethernet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_union_desc_t[0, 0]"}, FldName: "union"},
&StructType{Key: StructKey{Name: "usb_cdc_header_desc"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "other", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_ethernet_other"}}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_header_ethernet_other"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ethernet_other", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, FldName: "call_mgmt"},
&StructType{Key: StructKey{Name: "usb_cdc_acm_descriptor"}, FldName: "acm"},
- &StructType{Key: StructKey{Name: "usb_cdc_union_desc"}, FldName: "union"},
&StructType{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, FldName: "country_functional"},
&StructType{Key: StructKey{Name: "usb_cdc_network_terminal_desc"}, FldName: "network_terminal"},
- &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
&StructType{Key: StructKey{Name: "usb_cdc_dmm_desc"}, FldName: "dmm"},
&StructType{Key: StructKey{Name: "usb_cdc_mdlm_desc"}, FldName: "mdlm"},
&StructType{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, FldName: "mdlm_detail"},
@@ -25594,6 +25600,25 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "usb_cdc_mbim_desc"}, FldName: "mbim"},
&StructType{Key: StructKey{Name: "usb_cdc_mbim_extended_desc"}, FldName: "mbim_extended"},
}}},
+ {Key: StructKey{Name: "usb_cdc_header_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_union_desc_t[0, 1]"}, FldName: "union"},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_desc"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ncm_desc"}, FldName: "ncm"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "other", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_ncm_other"}}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_header_ncm_other"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ncm_other", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, FldName: "call_mgmt"},
+ &StructType{Key: StructKey{Name: "usb_cdc_acm_descriptor"}, FldName: "acm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, FldName: "country_functional"},
+ &StructType{Key: StructKey{Name: "usb_cdc_network_terminal_desc"}, FldName: "network_terminal"},
+ &StructType{Key: StructKey{Name: "usb_cdc_dmm_desc"}, FldName: "dmm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mdlm_desc"}, FldName: "mdlm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, FldName: "mdlm_detail"},
+ &StructType{Key: StructKey{Name: "usb_cdc_obex_desc"}, FldName: "obex"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mbim_desc"}, FldName: "mbim"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mbim_extended_desc"}, FldName: "mbim_extended"},
+ }}},
{Key: StructKey{Name: "usb_cdc_mbim_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_mbim_desc", TypeSize: 12}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
@@ -25618,7 +25643,7 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 18},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "bGUID", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "usb_cdc_ecm_mbm_guid"}, FldName: "bGUID"},
}}},
{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_mdlm_detail_desc", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
@@ -25663,24 +25688,60 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 21},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
}}},
- {Key: StructKey{Name: "usb_cdc_union_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_cdc_union_desc_t[0, 0]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc_t[0, 0]", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bMasterInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bSlaveInterface0", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "slave_interfaces", IsVarlen: true}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_union_desc_t[0, 1]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc_t[0, 1]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 6},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMasterInterface0", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSlaveInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bMasterInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bSlaveInterface0", TypeSize: 1}}, Val: 1},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "slave_interfaces", IsVarlen: true}, Kind: 1, RangeEnd: 6},
}}},
{Key: StructKey{Name: "usb_config_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_config_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_hid", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_config_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumInterfaces", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bConfigurationValue", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptors_cdc_ncm"}, FldName: "interfaces"},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumInterfaces", TypeSize: 1}}, Path: []string{"interfaces"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bConfigurationValue", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_cdc_ecm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25691,7 +25752,7 @@ var structDescs_arm64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_hid"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25702,7 +25763,7 @@ var structDescs_arm64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_printer"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25711,7 +25772,7 @@ var structDescs_arm64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 4},
}}},
{Key: StructKey{Name: "usb_dev_cap"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_dev_cap", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_generic_cap_descriptor"}, FldName: "generic"},
@@ -25725,11 +25786,17 @@ var structDescs_arm64 = []*KeyedStruct{
{Key: StructKey{Name: "usb_device_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_device_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_device_descriptor_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]"}, FldName: "inner"},
+ }}},
{Key: StructKey{Name: "usb_device_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_hid", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 64, array[usb_config_descriptor_hid, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_device_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
@@ -25738,13 +25805,13 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
@@ -25755,36 +25822,79 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_hid"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1008},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 27671},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42152},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_printer"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
+ {Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42145},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_cdc_ecm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42145},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_cdc_ncm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[flags[usb_endpoint_addresses, int8], flags[usb_endpoint_attributes, int8], array[usb_endpoint_extra_descriptor, 0:2]]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_in", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_notify", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_out", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor_hid_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_hid_in", TypeSize: 9}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]"}, FldName: "inner"},
}}},
@@ -25797,12 +25907,45 @@ var structDescs_arm64 = []*KeyedStruct{
{Key: StructKey{Name: "usb_endpoint_descriptor_printer_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_printer_out", TypeSize: 9}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_PRINTER_OUT_ADDRESS, int8], const[USB_ENDPOINT_PRINTER_ATTRIBUTES, int8], void]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 130},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 129},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 129},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25813,7 +25956,7 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25824,7 +25967,7 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 130},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25835,7 +25978,7 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 1},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25846,12 +25989,21 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_endpoint_addresses", FldName: "bEndpointAddress", TypeSize: 1}}, Vals: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 128}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_endpoint_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 0, 16, 0, 4, 8, 12, 0, 16, 16}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_endpoint_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "notify", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}}, Kind: 1, RangeEnd: 1},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, FldName: "out"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ncm_data"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_cdc_ncm_data", TypeSize: 18}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, FldName: "out"},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptors_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_hid", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_hid_in"}, FldName: "in"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "out", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_hid_out"}}, Kind: 1, RangeEnd: 1},
@@ -25921,33 +26073,36 @@ var structDescs_arm64 = []*KeyedStruct{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_hub_change_flags", FldName: "wHubChange", TypeSize: 2}}, Vals: []uint64{1, 2}, BitMask: true},
}}},
{Key: StructKey{Name: "usb_interface_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_interface_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_hid", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_interface_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, FldName: "inner"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_interface_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "endpoints", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor"}}, Kind: 1, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ncm"}, FldName: "extra"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}, FldName: "endpoints"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 3},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_hid_protocols", FldName: "bInterfaceProtocol", TypeSize: 1}}, Vals: []uint64{0, 1, 2}, BitMask: true},
@@ -25955,12 +26110,12 @@ var structDescs_arm64 = []*KeyedStruct{
&StructType{Key: StructKey{Name: "usb_hid_descriptor_hid"}, FldName: "extra"},
&StructType{Key: StructKey{Name: "usb_endpoint_descriptors_hid"}, FldName: "endpoints"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 7},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 1},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceProtocol", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 3},
@@ -25968,10 +26123,67 @@ var structDescs_arm64 = []*KeyedStruct{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
&StructType{Key: StructKey{Name: "usb_endpoint_descriptors_printer"}, FldName: "endpoints"},
}}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 2, RangeEnd: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ethernet"}, FldName: "extra"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ecm"}, FldName: "endpoints"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_interface_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "endpoints", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor"}}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "endpoints"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]", TypeSize: 27}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ncm_data"}, FldName: "endpoints"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptors_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptors_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]"}, FldName: "control"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]"}, FldName: "data_nop"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]"}, FldName: "data"},
+ }}},
{Key: StructKey{Name: "usb_interface_extra_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_extra_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_generic_descriptor"}, FldName: "generic"},
&StructType{Key: StructKey{Name: "usb_hid_descriptor_hid"}, FldName: "hid_hid"},
- &StructType{Key: StructKey{Name: "usb_cdc_header"}, FldName: "usb_cdc"},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ethernet"}, FldName: "usb_cdc"},
}}},
{Key: StructKey{Name: "usb_port_status"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_port_status", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_port_status_flags", FldName: "wPortStatus", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 2048, 4096, 480, 512, 7168, 0, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352}},
@@ -25994,7 +26206,7 @@ var structDescs_arm64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceClass", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceSubClass", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumConfigurations", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bRESERVED", TypeSize: 1}}},
}}},
@@ -26027,11 +26239,24 @@ var structDescs_arm64 = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "bmSublinkSpeedAttr", IsVarlen: true}, Type: &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_ssp_cap_sublink_speeds", TypeSize: 4}}, Vals: []uint64{15, 48, 192, 16128, 49152, 16711680}, BitMask: true}, Kind: 1, RangeEnd: 6},
}}},
{Key: StructKey{Name: "usb_string_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]"}, FldName: "lang_id"},
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[array[int8]]"}, FldName: "string"},
+ }}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[array[int8]]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_lang_ids", FldName: "lang_id", TypeSize: 2}}, Vals: []uint64{1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, 10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1101, 1068, 2092, 1069, 1059, 1093, 1026, 1109, 1027, 1028, 2052, 3076, 4100, 5124, 1050, 1029, 1030, 1043, 2067, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1065, 1035, 1036, 2060, 3084, 4108, 5132, 6156, 1079, 1031, 2055, 3079, 4103, 5127, 1032, 1095, 1037, 1081, 1038, 1039, 1057, 1040, 2064, 1041, 1099, 2144, 1087, 1111, 1042, 2066, 1062, 1063, 2087, 1071, 1086, 2110, 1100, 1112, 1102, 2145, 1044, 2068, 1096, 1045, 1046, 2070, 1094, 1048, 1049, 1103, 3098, 2074, 1113, 1051, 1060, 1034, 2058, 3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, 13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1072, 1089, 1053, 2077, 1097, 1092, 1098, 1054, 1055, 1058, 1056, 2080, 1091, 2115, 1066, 1279, 61695, 62719, 63743, 64767}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]", TypeSize: 4}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_lang_ids", FldName: "data", TypeSize: 2}}, Vals: []uint64{1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, 10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1101, 1068, 2092, 1069, 1059, 1093, 1026, 1109, 1027, 1028, 2052, 3076, 4100, 5124, 1050, 1029, 1030, 1043, 2067, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1065, 1035, 1036, 2060, 3084, 4108, 5132, 6156, 1079, 1031, 2055, 3079, 4103, 5127, 1032, 1095, 1037, 1081, 1038, 1039, 1057, 1040, 2064, 1041, 1099, 2144, 1087, 1111, 1042, 2066, 1062, 1063, 2087, 1071, 1086, 2110, 1100, 1112, 1102, 2145, 1044, 2068, 1096, 1045, 1046, 2070, 1094, 1048, 1049, 1103, 3098, 2074, 1113, 1051, 1060, 1034, 2058, 3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, 13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1072, 1089, 1053, 2077, 1097, 1092, 1098, 1054, 1055, 1058, 1056, 2080, 1091, 2115, 1066, 1279, 61695, 62719, 63743, 64767}},
+ }}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[usb_cdc_ecm_mac]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[usb_cdc_ecm_mac]", TypeSize: 26}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
+ &StructType{Key: StructKey{Name: "usb_cdc_ecm_mac"}, FldName: "data"},
+ }}},
{Key: StructKey{Name: "usb_wireless_cap_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_wireless_cap_descriptor", TypeSize: 11}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 16},
@@ -27107,7 +27332,7 @@ var structDescs_arm64 = []*KeyedStruct{
}}},
{Key: StructKey{Name: "vusb_connect_string_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_connect_string_descriptor", TypeSize: 12}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"str"}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "str", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_string_descriptor"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "str", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "usb_string_descriptor"}}},
}}},
{Key: StructKey{Name: "vusb_descriptor_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptor_generic", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_request_types", FldName: "req_type", TypeSize: 1}}, Vals: []uint64{0, 32, 64}, BitMask: true},
@@ -27149,7 +27374,13 @@ var structDescs_arm64 = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &StructType{Key: StructKey{Name: "usb_string_descriptor"}, FldName: "data"},
+ &UnionType{Key: StructKey{Name: "usb_string_descriptor"}, FldName: "data"},
+ }}},
+ {Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]", TypeSize: 32}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[usb_cdc_ecm_mac]"}, FldName: "data"},
}}},
{Key: StructKey{Name: "vusb_descriptors"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors", TypeSize: 44}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
@@ -27159,6 +27390,16 @@ var structDescs_arm64 = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_hs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_CLASS, USB_DT_HUB, usb_hub_descriptor_hs]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_ss", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_CLASS, USB_DT_SS_HUB, usb_hub_descriptor_ss]"}}},
}}},
+ {Key: StructKey{Name: "vusb_descriptors_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_cdc_ecm", TypeSize: 20}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_DT_STRING", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}}},
+ }}},
+ {Key: StructKey{Name: "vusb_descriptors_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_cdc_ncm", TypeSize: 20}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_DT_STRING", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}}},
+ }}},
{Key: StructKey{Name: "vusb_descriptors_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_hid", TypeSize: 36}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
@@ -27177,17 +27418,17 @@ var structDescs_arm64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
- {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]", TypeSize: 7}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]", TypeSize: 7}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 1},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_CUR, array[int8, 1:3]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_CUR, array[int8, 1:3]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
@@ -27237,6 +27478,30 @@ var structDescs_arm64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 137},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 135},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 131},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]", TypeSize: 10}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 133},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "data", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]", TypeSize: 34}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 128},
@@ -27333,7 +27598,7 @@ var structDescs_arm64 = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "vusb_responses"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses", TypeSize: 180}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_responses"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses", TypeSize: 172}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "get_interface", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
@@ -27345,7 +27610,6 @@ var structDescs_arm64 = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "audio_UAC_GET_MEM", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_MEM, array[int8, 3]]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_USB_REQ_GET_STATUS_hub", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_hub_status]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_USB_REQ_GET_STATUS_port", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_port_status]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cdc_USB_CDC_GET_NTB_PARAMETERS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_MII_REG", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_MII_REG, int16]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_STATMNGSTS_REG", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_STATMNGSTS_REG, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_EEPROM", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_EEPROM, array[int8, 2]]"}}},
@@ -27358,13 +27622,30 @@ var structDescs_arm64 = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_GPIOS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_GPIOS, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_SW_PHY_STATUS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_SW_PHY_STATUS, int8]"}}},
}}},
+ {Key: StructKey{Name: "vusb_responses_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_cdc_ecm", TypeSize: 28}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
+ }}},
+ {Key: StructKey{Name: "vusb_responses_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_cdc_ncm", TypeSize: 68}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_PARAMETERS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_INPUT_SIZE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_FORMAT", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_MAX_DATAGRAM_SIZE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_CRC_MODE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]"}}},
+ }}},
{Key: StructKey{Name: "vusb_responses_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_hid", TypeSize: 44}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_REPORT", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_PROTOCOL", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_PROTOCOL", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]"}}},
}}},
{Key: StructKey{Name: "vusb_responses_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_printer", TypeSize: 52}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
@@ -39281,6 +39562,11 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Path: []string{"buf"}},
}},
+ {NR: 63, Name: "read$char_usb", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{NR: 63, Name: "read$eventfd", CallName: "read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_event", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "val", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}},
@@ -43087,6 +43373,11 @@ var syscalls_arm64 = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 8}}, ValuesPerProc: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 8}}, Val: 2},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_open_dev$char_usb", CallName: "syz_open_dev", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dev", TypeSize: 8}}, Val: 12},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "major", TypeSize: 8}}, Val: 180},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minor", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_open_dev$dmmidi", CallName: "syz_open_dev", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/dmmidi#\x00"}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "id", TypeSize: 8}}},
@@ -43295,6 +43586,18 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_usb_connect$cdc_ecm", CallName: "syz_usb_connect", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 8}}, Path: []string{"dev"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor_cdc_ecm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ecm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_usb_connect$cdc_ncm", CallName: "syz_usb_connect", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 8}}, Path: []string{"dev"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor_cdc_ncm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ncm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_usb_connect$hid", CallName: "syz_usb_connect", Args: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 8}}, Path: []string{"dev"}},
@@ -43312,6 +43615,16 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_responses"}}},
}},
+ {Name: "syz_usb_control_io$cdc_ecm", CallName: "syz_usb_control_io", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ecm", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_cdc_ecm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_responses_cdc_ecm"}}},
+ }},
+ {Name: "syz_usb_control_io$cdc_ncm", CallName: "syz_usb_control_io", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ncm", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_cdc_ncm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_responses_cdc_ncm"}}},
+ }},
{Name: "syz_usb_control_io$hid", CallName: "syz_usb_control_io", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_hid", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_hid"}}},
@@ -44192,6 +44505,11 @@ var syscalls_arm64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"threaded\x00"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 8}}, BitSize: 8, Path: []string{"buf"}},
}},
+ {NR: 64, Name: "write$char_usb", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{NR: 64, Name: "write$evdev", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_evdev", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "input_event"}}}},
@@ -44914,6 +45232,8 @@ var consts_arm64 = []ConstValue{
{Name: "CAPI_SELECT_B_PROTOCOL", Value: 65},
{Name: "CAPI_SET_FLAGS", Value: 2147762980},
{Name: "CAP_LAST_CAP", Value: 37},
+ {Name: "CDC_NCM_COMM_ALTSETTING_NCM"},
+ {Name: "CDC_NCM_DATA_ALTSETTING_NCM", Value: 1},
{Name: "CDO_AUTO_CLOSE", Value: 1},
{Name: "CDO_AUTO_EJECT", Value: 2},
{Name: "CDO_CHECK_TYPE", Value: 16},
@@ -45978,6 +46298,7 @@ var consts_arm64 = []ConstValue{
{Name: "HID_REPORT_ID_UNKNOWN", Value: 4294967295},
{Name: "HID_REPORT_TYPE_MAX", Value: 3},
{Name: "HID_REPORT_TYPE_MIN", Value: 1},
+ {Name: "HID_REQ_GET_PROTOCOL", Value: 3},
{Name: "HID_REQ_GET_REPORT", Value: 1},
{Name: "HUB_CHANGE_LOCAL_POWER", Value: 1},
{Name: "HUB_CHANGE_OVERCURRENT", Value: 2},
@@ -50245,6 +50566,10 @@ var consts_arm64 = []ConstValue{
{Name: "USB_CDC_COUNTRY_TYPE", Value: 7},
{Name: "USB_CDC_DMM_TYPE", Value: 20},
{Name: "USB_CDC_ETHERNET_TYPE", Value: 15},
+ {Name: "USB_CDC_GET_CRC_MODE", Value: 137},
+ {Name: "USB_CDC_GET_MAX_DATAGRAM_SIZE", Value: 135},
+ {Name: "USB_CDC_GET_NTB_FORMAT", Value: 131},
+ {Name: "USB_CDC_GET_NTB_INPUT_SIZE", Value: 133},
{Name: "USB_CDC_GET_NTB_PARAMETERS", Value: 128},
{Name: "USB_CDC_HEADER_TYPE"},
{Name: "USB_CDC_MBIM_EXTENDED_TYPE", Value: 28},
@@ -50254,8 +50579,11 @@ var consts_arm64 = []ConstValue{
{Name: "USB_CDC_NCM_TYPE", Value: 26},
{Name: "USB_CDC_NETWORK_TERMINAL_TYPE", Value: 10},
{Name: "USB_CDC_OBEX_TYPE", Value: 21},
+ {Name: "USB_CDC_PROTO_NONE"},
+ {Name: "USB_CDC_SUBCLASS_ETHERNET", Value: 6},
+ {Name: "USB_CDC_SUBCLASS_NCM", Value: 13},
{Name: "USB_CDC_UNION_TYPE", Value: 6},
- {Name: "USB_CDC_WHCM_TYPE", Value: 17},
+ {Name: "USB_CLASS_COMM", Value: 2},
{Name: "USB_CLASS_HID", Value: 3},
{Name: "USB_CLASS_PRINTER", Value: 7},
{Name: "USB_CONFIG_ATT_BATTERY", Value: 16},
@@ -50295,6 +50623,11 @@ var consts_arm64 = []ConstValue{
{Name: "USB_DT_STRING", Value: 3},
{Name: "USB_DT_WIRELESS_ENDPOINT_COMP", Value: 17},
{Name: "USB_DT_WIRE_ADAPTER", Value: 33},
+ {Name: "USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES", Value: 2},
+ {Name: "USB_ENDPOINT_CDC_ECM_IN_ADDRESS", Value: 130},
+ {Name: "USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS", Value: 129},
+ {Name: "USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES", Value: 3},
+ {Name: "USB_ENDPOINT_CDC_ECM_OUT_ADDRESS", Value: 3},
{Name: "USB_ENDPOINT_HID_ATTRIBUTES", Value: 3},
{Name: "USB_ENDPOINT_HID_IN_ADDRESS", Value: 129},
{Name: "USB_ENDPOINT_HID_OUT_ADDRESS", Value: 2},
@@ -50326,6 +50659,7 @@ var consts_arm64 = []ConstValue{
{Name: "USB_LOW_SPEED_OPERATION", Value: 1},
{Name: "USB_LPM_SUPPORT", Value: 2},
{Name: "USB_LTM_SUPPORT", Value: 2},
+ {Name: "USB_MAJOR", Value: 180},
{Name: "USB_PORT_STAT_CONNECTION", Value: 1},
{Name: "USB_PORT_STAT_C_BH_RESET", Value: 32},
{Name: "USB_PORT_STAT_C_CONFIG_ERROR", Value: 128},
@@ -52112,4 +52446,4 @@ var consts_arm64 = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_arm64 = "26a51558327902a8e8951bd6afdcdae046006802"
+const revision_arm64 = "ace614dc3bdc1ab3e0dfe5514e2718cdd818e071"
diff --git a/sys/linux/gen/ppc64le.go b/sys/linux/gen/ppc64le.go
index 7788c1eee..e2280d03c 100644
--- a/sys/linux/gen/ppc64le.go
+++ b/sys/linux/gen/ppc64le.go
@@ -40,6 +40,7 @@ var resources_ppc64le = []*ResourceDesc{
{Name: "fd_cgroup_pid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_pid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_subtree", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_subtree"}, Values: []uint64{18446744073709551615}},
{Name: "fd_cgroup_type", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_cgroup_type"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_char_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_char_usb"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dir", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dir"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_dma_buf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dma_buf"}, Values: []uint64{18446744073709551615}},
{Name: "fd_dmabuf", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_dmabuf"}, Values: []uint64{18446744073709551615}},
@@ -112,6 +113,8 @@ var resources_ppc64le = []*ResourceDesc{
{Name: "fd_uhid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_uhid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_uinput", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_uinput"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_usb_cdc_ecm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_cdc_ecm"}, Values: []uint64{18446744073709551615}},
+ {Name: "fd_usb_cdc_ncm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_cdc_ncm"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb_hid", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_hid"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usb_printer", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd_usb", "fd_usb_printer"}, Values: []uint64{18446744073709551615}},
{Name: "fd_usbmon", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_usbmon"}, Values: []uint64{18446744073709551615}},
@@ -25401,11 +25404,12 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 2},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_acm_caps", FldName: "bmCapabilities", TypeSize: 1}}, Vals: []uint64{1, 2, 4, 8}, BitMask: true},
}}},
- {Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_descriptor", TypeSize: 4}, Fields: []Type{
+ {Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_descriptor", TypeSize: 5}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_call_mgmt_caps", FldName: "bmCapabilities", TypeSize: 1}}, Vals: []uint64{1, 2}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDataInterface", TypeSize: 1}}},
}}},
{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_country_functional_desc", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
@@ -25422,40 +25426,42 @@ var structDescs_ppc64le = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxCommand", TypeSize: 2}}},
}}},
+ {Key: StructKey{Name: "usb_cdc_ecm_mac"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ecm_mac", TypeSize: 24}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data0", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data1", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "data2", TypeSize: 8}, ArgFormat: 1}, Val: 3747049866426069504},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_ecm_mbm_guid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ecm_mbm_guid", TypeSize: 16}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "id0", TypeSize: 8}}, Val: 94397490813999011},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "id1", TypeSize: 8}}, Val: 3042602437899716518},
+ }}},
{Key: StructKey{Name: "usb_cdc_ether_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_ether_desc", TypeSize: 13}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 15},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iMACAddress", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iMACAddress", TypeSize: 1}}, Val: 1},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "bmEthernetStatistics", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxSegmentSize", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wNumberMCFilters", TypeSize: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumberPowerFilters", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "usb_cdc_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_generic", IsVarlen: true}, Fields: []Type{
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_cdc_types", FldName: "bDescriptorSubType", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 6, 7, 10, 15, 17, 18, 19, 20, 21, 26, 27, 28}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
- }}},
- {Key: StructKey{Name: "usb_cdc_header"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header", IsVarlen: true}, Fields: []Type{
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "items", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_item"}}, Kind: 1, RangeEnd: 16},
- }}},
{Key: StructKey{Name: "usb_cdc_header_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_desc", TypeSize: 5}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdCDC", TypeSize: 2}}},
}}},
- {Key: StructKey{Name: "usb_cdc_header_item"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_item", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_cdc_generic"}, FldName: "generic"},
+ {Key: StructKey{Name: "usb_cdc_header_ethernet"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ethernet", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_union_desc_t[0, 0]"}, FldName: "union"},
&StructType{Key: StructKey{Name: "usb_cdc_header_desc"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "other", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_ethernet_other"}}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_header_ethernet_other"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ethernet_other", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, FldName: "call_mgmt"},
&StructType{Key: StructKey{Name: "usb_cdc_acm_descriptor"}, FldName: "acm"},
- &StructType{Key: StructKey{Name: "usb_cdc_union_desc"}, FldName: "union"},
&StructType{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, FldName: "country_functional"},
&StructType{Key: StructKey{Name: "usb_cdc_network_terminal_desc"}, FldName: "network_terminal"},
- &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
&StructType{Key: StructKey{Name: "usb_cdc_dmm_desc"}, FldName: "dmm"},
&StructType{Key: StructKey{Name: "usb_cdc_mdlm_desc"}, FldName: "mdlm"},
&StructType{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, FldName: "mdlm_detail"},
@@ -25464,6 +25470,25 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "usb_cdc_mbim_desc"}, FldName: "mbim"},
&StructType{Key: StructKey{Name: "usb_cdc_mbim_extended_desc"}, FldName: "mbim_extended"},
}}},
+ {Key: StructKey{Name: "usb_cdc_header_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_union_desc_t[0, 1]"}, FldName: "union"},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_desc"}, FldName: "header"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ether_desc"}, FldName: "ether"},
+ &StructType{Key: StructKey{Name: "usb_cdc_ncm_desc"}, FldName: "ncm"},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "other", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_cdc_header_ncm_other"}}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_header_ncm_other"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_header_ncm_other", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_cdc_call_mgmt_descriptor"}, FldName: "call_mgmt"},
+ &StructType{Key: StructKey{Name: "usb_cdc_acm_descriptor"}, FldName: "acm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_country_functional_desc"}, FldName: "country_functional"},
+ &StructType{Key: StructKey{Name: "usb_cdc_network_terminal_desc"}, FldName: "network_terminal"},
+ &StructType{Key: StructKey{Name: "usb_cdc_dmm_desc"}, FldName: "dmm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mdlm_desc"}, FldName: "mdlm"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, FldName: "mdlm_detail"},
+ &StructType{Key: StructKey{Name: "usb_cdc_obex_desc"}, FldName: "obex"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mbim_desc"}, FldName: "mbim"},
+ &StructType{Key: StructKey{Name: "usb_cdc_mbim_extended_desc"}, FldName: "mbim_extended"},
+ }}},
{Key: StructKey{Name: "usb_cdc_mbim_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_mbim_desc", TypeSize: 12}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
@@ -25488,7 +25513,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 18},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "bGUID", TypeSize: 16}, Kind: 1, RangeBegin: 16, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "usb_cdc_ecm_mbm_guid"}, FldName: "bGUID"},
}}},
{Key: StructKey{Name: "usb_cdc_mdlm_detail_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_mdlm_detail_desc", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
@@ -25533,24 +25558,60 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 21},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "bcdVersion", TypeSize: 2}}},
}}},
- {Key: StructKey{Name: "usb_cdc_union_desc"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_cdc_union_desc_t[0, 0]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc_t[0, 0]", IsVarlen: true}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bMasterInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bSlaveInterface0", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "slave_interfaces", IsVarlen: true}, Kind: 1, RangeEnd: 6},
+ }}},
+ {Key: StructKey{Name: "usb_cdc_union_desc_t[0, 1]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_cdc_union_desc_t[0, 1]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 36},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorSubType", TypeSize: 1}}, Val: 6},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMasterInterface0", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSlaveInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bMasterInterface0", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bSlaveInterface0", TypeSize: 1}}, Val: 1},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "slave_interfaces", IsVarlen: true}, Kind: 1, RangeEnd: 6},
}}},
{Key: StructKey{Name: "usb_config_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_config_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_hid", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_config_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumInterfaces", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bConfigurationValue", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptors_cdc_ncm"}, FldName: "interfaces"},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumInterfaces", TypeSize: 1}}, Path: []string{"interfaces"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bConfigurationValue", TypeSize: 1}}, Val: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_cdc_ecm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25561,7 +25622,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_hid"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[const[1, int8], len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25572,7 +25633,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor_printer"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_config_descriptor_t[int8, len[interfaces, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 2},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "wTotalLength", TypeSize: 2}}, Path: []string{"parent"}},
@@ -25581,7 +25642,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iConfiguration", TypeSize: 1}}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_config_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{128, 64, 32, 16}, BitMask: true},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bMaxPower", TypeSize: 1}}},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "interfaces", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_interface_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 4},
}}},
{Key: StructKey{Name: "usb_dev_cap"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_dev_cap", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_generic_cap_descriptor"}, FldName: "generic"},
@@ -25595,11 +25656,17 @@ var structDescs_ppc64le = []*KeyedStruct{
{Key: StructKey{Name: "usb_device_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_device_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_device_descriptor_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]"}, FldName: "inner"},
+ }}},
{Key: StructKey{Name: "usb_device_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_hid", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 64, array[usb_config_descriptor_hid, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_device_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
@@ -25608,13 +25675,13 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
@@ -25625,36 +25692,79 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_hid"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
- {Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1008},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 27671},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42152},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iManufacturer", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iProduct", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iSerialNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_printer"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
}}},
+ {Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42145},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_cdc_ecm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 18},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_versions", FldName: "bcdUSB", TypeSize: 2}}, Vals: []uint64{272, 512, 513, 592, 768, 784}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDeviceProtocol", TypeSize: 1}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idVendor", TypeSize: 2}}, Val: 1317},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "idProduct", TypeSize: 2}}, Val: 42145},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bcdDevice", TypeSize: 2}}, Val: 64},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iManufacturer", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iProduct", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "iSerialNumber", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumConfigurations", TypeSize: 1}}, Path: []string{"configs"}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "configs", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_config_descriptor_cdc_ncm"}}, Kind: 1, RangeBegin: 1, RangeEnd: 1},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[flags[usb_endpoint_addresses, int8], flags[usb_endpoint_attributes, int8], array[usb_endpoint_extra_descriptor, 0:2]]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_in", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_notify", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_cdc_ecm_out", TypeSize: 9}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, FldName: "inner"},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor_hid_in"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_hid_in", TypeSize: 9}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]"}, FldName: "inner"},
}}},
@@ -25667,12 +25777,45 @@ var structDescs_ppc64le = []*KeyedStruct{
{Key: StructKey{Name: "usb_endpoint_descriptor_printer_out"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_printer_out", TypeSize: 9}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_PRINTER_OUT_ADDRESS, int8], const[USB_ENDPOINT_PRINTER_ATTRIBUTES, int8], void]"}, FldName: "inner"},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 130},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 129},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptor_t[const[USB_ENDPOINT_HID_IN_ADDRESS, int8], const[USB_ENDPOINT_HID_ATTRIBUTES, int8], void]", TypeSize: 9}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 129},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25683,7 +25826,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25694,7 +25837,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 130},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25705,7 +25848,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bEndpointAddress", TypeSize: 1}}, Val: 1},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bmAttributes", TypeSize: 1}}, Val: 2},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
@@ -25716,12 +25859,21 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 5},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_endpoint_addresses", FldName: "bEndpointAddress", TypeSize: 1}}, Vals: []uint64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 128}},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_endpoint_attributes", FldName: "bmAttributes", TypeSize: 1}}, Vals: []uint64{0, 1, 2, 3, 0, 16, 0, 4, 8, 12, 0, 16, 16}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "wMaxPacketSize", TypeSize: 2}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "wMaxPacketSize", TypeSize: 2}}, Kind: 2, RangeEnd: 1024},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterval", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bRefresh", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bSynchAddress", TypeSize: 1}}},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_endpoint_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
}}},
+ {Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "notify", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}}, Kind: 1, RangeEnd: 1},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, FldName: "out"},
+ }}},
+ {Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ncm_data"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_cdc_ncm_data", TypeSize: 18}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_in"}, FldName: "in"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_out"}, FldName: "out"},
+ }}},
{Key: StructKey{Name: "usb_endpoint_descriptors_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_endpoint_descriptors_hid", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_endpoint_descriptor_hid_in"}, FldName: "in"},
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "out", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_hid_out"}}, Kind: 1, RangeEnd: 1},
@@ -25791,33 +25943,36 @@ var structDescs_ppc64le = []*KeyedStruct{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_hub_change_flags", FldName: "wHubChange", TypeSize: 2}}, Vals: []uint64{1, 2}, BitMask: true},
}}},
{Key: StructKey{Name: "usb_interface_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, FldName: "inner"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_cdc_ecm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_interface_descriptor_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_hid", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, FldName: "inner"},
}}},
{Key: StructKey{Name: "usb_interface_descriptor_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_printer", IsVarlen: true}, Fields: []Type{
- &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, FldName: "inner"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, FldName: "inner"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_interface_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
- &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "endpoints", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor"}}, Kind: 1, RangeEnd: 16},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ncm"}, FldName: "extra"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptor_cdc_ecm_notify"}, FldName: "endpoints"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 3},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 1},
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_hid_protocols", FldName: "bInterfaceProtocol", TypeSize: 1}}, Vals: []uint64{0, 1, 2}, BitMask: true},
@@ -25825,12 +25980,12 @@ var structDescs_ppc64le = []*KeyedStruct{
&StructType{Key: StructKey{Name: "usb_hid_descriptor_hid"}, FldName: "extra"},
&StructType{Key: StructKey{Name: "usb_endpoint_descriptors_hid"}, FldName: "endpoints"},
}}},
- {Key: StructKey{Name: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
- &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 2},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 7},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 1},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bInterfaceProtocol", TypeSize: 1}}, Kind: 2, RangeBegin: 1, RangeEnd: 3},
@@ -25838,10 +25993,67 @@ var structDescs_ppc64le = []*KeyedStruct{
&BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
&StructType{Key: StructKey{Name: "usb_endpoint_descriptors_printer"}, FldName: "endpoints"},
}}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumEndpoints", TypeSize: 1}}, Kind: 2, RangeBegin: 2, RangeEnd: 3},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 6},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ethernet"}, FldName: "extra"},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ecm"}, FldName: "endpoints"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[0, int8], int8, len[endpoints, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]", IsVarlen: true}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bNumEndpoints", TypeSize: 1}}, Path: []string{"endpoints"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "extra", IsVarlen: true}, Type: &UnionType{Key: StructKey{Name: "usb_interface_extra_descriptor"}}, Kind: 1, RangeEnd: 2},
+ &ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "endpoints", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "usb_endpoint_descriptor"}}, Kind: 1, RangeEnd: 16},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]", TypeSize: 9}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "endpoints"}, Kind: 1},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]", TypeSize: 27}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bLength", TypeSize: 1}}, Val: 9},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 4},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceNumber", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bAlternateSetting", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bNumEndpoints", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceClass", TypeSize: 1}}, Val: 2},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceSubClass", TypeSize: 1}}, Val: 13},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bInterfaceProtocol", TypeSize: 1}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "iInterface", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "void", FldName: "extra"}, Kind: 1},
+ &StructType{Key: StructKey{Name: "usb_endpoint_descriptors_cdc_ncm_data"}, FldName: "endpoints"},
+ }}},
+ {Key: StructKey{Name: "usb_interface_descriptors_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_descriptors_cdc_ncm", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]"}, FldName: "control"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]"}, FldName: "data_nop"},
+ &StructType{Key: StructKey{Name: "usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]"}, FldName: "data"},
+ }}},
{Key: StructKey{Name: "usb_interface_extra_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_interface_extra_descriptor", IsVarlen: true}, Fields: []Type{
&StructType{Key: StructKey{Name: "usb_generic_descriptor"}, FldName: "generic"},
&StructType{Key: StructKey{Name: "usb_hid_descriptor_hid"}, FldName: "hid_hid"},
- &StructType{Key: StructKey{Name: "usb_cdc_header"}, FldName: "usb_cdc"},
+ &StructType{Key: StructKey{Name: "usb_cdc_header_ethernet"}, FldName: "usb_cdc"},
}}},
{Key: StructKey{Name: "usb_port_status"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_port_status", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_port_status_flags", FldName: "wPortStatus", TypeSize: 2}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 256, 512, 1024, 2048, 4096, 480, 512, 7168, 0, 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352}},
@@ -25864,7 +26076,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceClass", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceSubClass", TypeSize: 1}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bDeviceProtocol", TypeSize: 1}}},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_max_packet_sizes", FldName: "bMaxPacketSize0", TypeSize: 1}}, Vals: []uint64{8, 16, 32, 64, 255}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "bNumConfigurations", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bRESERVED", TypeSize: 1}}},
}}},
@@ -25897,11 +26109,24 @@ var structDescs_ppc64le = []*KeyedStruct{
&ArrayType{TypeCommon: TypeCommon{TypeName: "array", FldName: "bmSublinkSpeedAttr", IsVarlen: true}, Type: &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_ssp_cap_sublink_speeds", TypeSize: 4}}, Vals: []uint64{15, 48, 192, 16128, 49152, 16711680}, BitMask: true}, Kind: 1, RangeEnd: 6},
}}},
{Key: StructKey{Name: "usb_string_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor", IsVarlen: true}, Fields: []Type{
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]"}, FldName: "lang_id"},
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[array[int8]]"}, FldName: "string"},
+ }}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[array[int8]]", IsVarlen: true}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
- &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_lang_ids", FldName: "lang_id", TypeSize: 2}}, Vals: []uint64{1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, 10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1101, 1068, 2092, 1069, 1059, 1093, 1026, 1109, 1027, 1028, 2052, 3076, 4100, 5124, 1050, 1029, 1030, 1043, 2067, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1065, 1035, 1036, 2060, 3084, 4108, 5132, 6156, 1079, 1031, 2055, 3079, 4103, 5127, 1032, 1095, 1037, 1081, 1038, 1039, 1057, 1040, 2064, 1041, 1099, 2144, 1087, 1111, 1042, 2066, 1062, 1063, 2087, 1071, 1086, 2110, 1100, 1112, 1102, 2145, 1044, 2068, 1096, 1045, 1046, 2070, 1094, 1048, 1049, 1103, 3098, 2074, 1113, 1051, 1060, 1034, 2058, 3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, 13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1072, 1089, 1053, 2077, 1097, 1092, 1098, 1054, 1055, 1058, 1056, 2080, 1091, 2115, 1066, 1279, 61695, 62719, 63743, 64767}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[flags[usb_lang_ids, int16]]", TypeSize: 4}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_lang_ids", FldName: "data", TypeSize: 2}}, Vals: []uint64{1078, 1052, 1025, 2049, 3073, 4097, 5121, 6145, 7169, 8193, 9217, 10241, 11265, 12289, 13313, 14337, 15361, 16385, 1067, 1101, 1068, 2092, 1069, 1059, 1093, 1026, 1109, 1027, 1028, 2052, 3076, 4100, 5124, 1050, 1029, 1030, 1043, 2067, 1033, 2057, 3081, 4105, 5129, 6153, 7177, 8201, 9225, 10249, 11273, 12297, 13321, 1061, 1080, 1065, 1035, 1036, 2060, 3084, 4108, 5132, 6156, 1079, 1031, 2055, 3079, 4103, 5127, 1032, 1095, 1037, 1081, 1038, 1039, 1057, 1040, 2064, 1041, 1099, 2144, 1087, 1111, 1042, 2066, 1062, 1063, 2087, 1071, 1086, 2110, 1100, 1112, 1102, 2145, 1044, 2068, 1096, 1045, 1046, 2070, 1094, 1048, 1049, 1103, 3098, 2074, 1113, 1051, 1060, 1034, 2058, 3082, 4106, 5130, 6154, 7178, 8202, 9226, 10250, 11274, 12298, 13322, 14346, 15370, 16394, 17418, 18442, 19466, 20490, 1072, 1089, 1053, 2077, 1097, 1092, 1098, 1054, 1055, 1058, 1056, 2080, 1091, 2115, 1066, 1279, 61695, 62719, 63743, 64767}},
+ }}},
+ {Key: StructKey{Name: "usb_string_descriptor_t[usb_cdc_ecm_mac]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_string_descriptor_t[usb_cdc_ecm_mac]", TypeSize: 26}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 3},
+ &StructType{Key: StructKey{Name: "usb_cdc_ecm_mac"}, FldName: "data"},
+ }}},
{Key: StructKey{Name: "usb_wireless_cap_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "usb_wireless_cap_descriptor", TypeSize: 11}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "bLength", TypeSize: 1}}, Path: []string{"parent"}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "bDescriptorType", TypeSize: 1}}, Val: 16},
@@ -27002,7 +27227,7 @@ var structDescs_ppc64le = []*KeyedStruct{
}}},
{Key: StructKey{Name: "vusb_connect_string_descriptor"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_connect_string_descriptor", TypeSize: 12}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"str"}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "str", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_string_descriptor"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "str", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "usb_string_descriptor"}}},
}}},
{Key: StructKey{Name: "vusb_descriptor_generic"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptor_generic", IsVarlen: true}, Fields: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_request_types", FldName: "req_type", TypeSize: 1}}, Vals: []uint64{0, 32, 64}, BitMask: true},
@@ -27044,7 +27269,13 @@ var structDescs_ppc64le = []*KeyedStruct{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &StructType{Key: StructKey{Name: "usb_string_descriptor"}, FldName: "data"},
+ &UnionType{Key: StructKey{Name: "usb_string_descriptor"}, FldName: "data"},
+ }}},
+ {Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]", TypeSize: 32}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &StructType{Key: StructKey{Name: "usb_string_descriptor_t[usb_cdc_ecm_mac]"}, FldName: "data"},
}}},
{Key: StructKey{Name: "vusb_descriptors"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors", TypeSize: 44}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
@@ -27054,6 +27285,16 @@ var structDescs_ppc64le = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_hs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_CLASS, USB_DT_HUB, usb_hub_descriptor_hs]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_ss", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_CLASS, USB_DT_SS_HUB, usb_hub_descriptor_ss]"}}},
}}},
+ {Key: StructKey{Name: "vusb_descriptors_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_cdc_ecm", TypeSize: 20}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_DT_STRING", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}}},
+ }}},
+ {Key: StructKey{Name: "vusb_descriptors_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_cdc_ncm", TypeSize: 20}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_DT_STRING", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]"}}},
+ }}},
{Key: StructKey{Name: "vusb_descriptors_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_descriptors_hid", TypeSize: 36}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptor_generic"}}},
@@ -27072,17 +27313,17 @@ var structDescs_ppc64le = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
- {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]", IsVarlen: true}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]", TypeSize: 7}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
- &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 1},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 3},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]", TypeSize: 7}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 1},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
- &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
+ &BufferType{TypeCommon: TypeCommon{TypeName: "array", FldName: "data", IsVarlen: true}},
}}},
{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_CUR, array[int8, 1:3]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_CUR, array[int8, 1:3]]", IsVarlen: true}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
@@ -27132,6 +27373,30 @@ var structDescs_ppc64le = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 137},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 135},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]", TypeSize: 8}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 131},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "data", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ }}},
+ {Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]", TypeSize: 10}, Fields: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 133},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "data", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]", TypeSize: 34}, Fields: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "type", TypeSize: 1}}, Val: 32},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "req", TypeSize: 1}}, Val: 128},
@@ -27228,7 +27493,7 @@ var structDescs_ppc64le = []*KeyedStruct{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 4}}, BitSize: 8, Path: []string{"data"}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "data", TypeSize: 1}}},
}}},
- {Key: StructKey{Name: "vusb_responses"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses", TypeSize: 180}, Fields: []Type{
+ {Key: StructKey{Name: "vusb_responses"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses", TypeSize: 172}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "get_interface", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
@@ -27240,7 +27505,6 @@ var structDescs_ppc64le = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "audio_UAC_GET_MEM", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, UAC_GET_MEM, array[int8, 3]]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_USB_REQ_GET_STATUS_hub", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_hub_status]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "hub_USB_REQ_GET_STATUS_port", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_port_status]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "cdc_USB_CDC_GET_NTB_PARAMETERS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_MII_REG", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_MII_REG, int16]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_STATMNGSTS_REG", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_STATMNGSTS_REG, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_EEPROM", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_EEPROM, array[int8, 2]]"}}},
@@ -27253,13 +27517,30 @@ var structDescs_ppc64le = []*KeyedStruct{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_READ_GPIOS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_GPIOS, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "asix_AX_CMD_SW_PHY_STATUS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_VENDOR, AX_CMD_SW_PHY_STATUS, int8]"}}},
}}},
+ {Key: StructKey{Name: "vusb_responses_cdc_ecm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_cdc_ecm", TypeSize: 28}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
+ }}},
+ {Key: StructKey{Name: "vusb_responses_cdc_ncm"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_cdc_ncm", TypeSize: 68}, Fields: []Type{
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_PARAMETERS", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_INPUT_SIZE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_NTB_FORMAT", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_MAX_DATAGRAM_SIZE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_CDC_GET_CRC_MODE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]"}}},
+ }}},
{Key: StructKey{Name: "vusb_responses_hid"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_hid", TypeSize: 44}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "generic", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_generic"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_INTERFACE", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "USB_REQ_GET_CONFIGURATION", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_REPORT", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]"}}},
- &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_PROTOCOL", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "HID_REQ_GET_PROTOCOL", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]"}}},
}}},
{Key: StructKey{Name: "vusb_responses_printer"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "vusb_responses_printer", TypeSize: 52}, Fields: []Type{
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "len", TypeSize: 4}}, Path: []string{"parent"}},
@@ -39221,6 +39502,11 @@ var syscalls_ppc64le = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "size", TypeSize: 8}}, Path: []string{"buf"}},
}},
+ {NR: 3, Name: "read$char_usb", CallName: "read", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", ArgDir: 1, IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{NR: 3, Name: "read$eventfd", CallName: "read", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_event", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "val", TypeSize: 8}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", TypeSize: 8, ArgDir: 1}}}},
@@ -43060,6 +43346,11 @@ var syscalls_ppc64le = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "id", TypeSize: 8}}, ValuesPerProc: 4},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "flags", TypeSize: 8}}, Val: 2},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_open_dev$char_usb", CallName: "syz_open_dev", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "dev", TypeSize: 8}}, Val: 12},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "major", TypeSize: 8}}, Val: 180},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "minor", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_open_dev$dmmidi", CallName: "syz_open_dev", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/dmmidi#\x00"}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "id", TypeSize: 8}}},
@@ -43268,6 +43559,18 @@ var syscalls_ppc64le = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_usb_connect$cdc_ecm", CallName: "syz_usb_connect", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 8}}, Path: []string{"dev"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor_cdc_ecm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ecm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {Name: "syz_usb_connect$cdc_ncm", CallName: "syz_usb_connect", Args: []Type{
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 8}}, Path: []string{"dev"}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "dev", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "usb_device_descriptor_cdc_ncm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "conn_descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_connect_descriptors"}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ncm", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{Name: "syz_usb_connect$hid", CallName: "syz_usb_connect", Args: []Type{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "usb_device_speed", FldName: "speed", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 3, 4, 5, 6}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "dev_len", TypeSize: 8}}, Path: []string{"dev"}},
@@ -43285,6 +43588,16 @@ var syscalls_ppc64le = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors"}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_responses"}}},
}},
+ {Name: "syz_usb_control_io$cdc_ecm", CallName: "syz_usb_control_io", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ecm", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_cdc_ecm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_responses_cdc_ecm"}}},
+ }},
+ {Name: "syz_usb_control_io$cdc_ncm", CallName: "syz_usb_control_io", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_cdc_ncm", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_cdc_ncm"}}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "resps", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_responses_cdc_ncm"}}},
+ }},
{Name: "syz_usb_control_io$hid", CallName: "syz_usb_control_io", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_usb_hid", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "descs", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "vusb_descriptors_hid"}}},
@@ -44186,6 +44499,11 @@ var syscalls_ppc64le = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"threaded\x00"}}},
&LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bytesize", FldName: "len", TypeSize: 8}}, BitSize: 8, Path: []string{"buf"}},
}},
+ {NR: 4, Name: "write$char_usb", CallName: "write", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_char_usb", FldName: "fd", TypeSize: 4}},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "buf", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}}},
+ &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", FldName: "count", TypeSize: 8}}, Path: []string{"buf"}},
+ }},
{NR: 4, Name: "write$evdev", CallName: "write", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_evdev", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "data", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "input_event"}}}},
@@ -44908,6 +45226,8 @@ var consts_ppc64le = []ConstValue{
{Name: "CAPI_SELECT_B_PROTOCOL", Value: 65},
{Name: "CAPI_SET_FLAGS", Value: 1074021156},
{Name: "CAP_LAST_CAP", Value: 37},
+ {Name: "CDC_NCM_COMM_ALTSETTING_NCM"},
+ {Name: "CDC_NCM_DATA_ALTSETTING_NCM", Value: 1},
{Name: "CDO_AUTO_CLOSE", Value: 1},
{Name: "CDO_AUTO_EJECT", Value: 2},
{Name: "CDO_CHECK_TYPE", Value: 16},
@@ -45972,6 +46292,7 @@ var consts_ppc64le = []ConstValue{
{Name: "HID_REPORT_ID_UNKNOWN", Value: 4294967295},
{Name: "HID_REPORT_TYPE_MAX", Value: 3},
{Name: "HID_REPORT_TYPE_MIN", Value: 1},
+ {Name: "HID_REQ_GET_PROTOCOL", Value: 3},
{Name: "HID_REQ_GET_REPORT", Value: 1},
{Name: "HUB_CHANGE_LOCAL_POWER", Value: 1},
{Name: "HUB_CHANGE_OVERCURRENT", Value: 2},
@@ -50218,6 +50539,10 @@ var consts_ppc64le = []ConstValue{
{Name: "USB_CDC_COUNTRY_TYPE", Value: 7},
{Name: "USB_CDC_DMM_TYPE", Value: 20},
{Name: "USB_CDC_ETHERNET_TYPE", Value: 15},
+ {Name: "USB_CDC_GET_CRC_MODE", Value: 137},
+ {Name: "USB_CDC_GET_MAX_DATAGRAM_SIZE", Value: 135},
+ {Name: "USB_CDC_GET_NTB_FORMAT", Value: 131},
+ {Name: "USB_CDC_GET_NTB_INPUT_SIZE", Value: 133},
{Name: "USB_CDC_GET_NTB_PARAMETERS", Value: 128},
{Name: "USB_CDC_HEADER_TYPE"},
{Name: "USB_CDC_MBIM_EXTENDED_TYPE", Value: 28},
@@ -50227,8 +50552,11 @@ var consts_ppc64le = []ConstValue{
{Name: "USB_CDC_NCM_TYPE", Value: 26},
{Name: "USB_CDC_NETWORK_TERMINAL_TYPE", Value: 10},
{Name: "USB_CDC_OBEX_TYPE", Value: 21},
+ {Name: "USB_CDC_PROTO_NONE"},
+ {Name: "USB_CDC_SUBCLASS_ETHERNET", Value: 6},
+ {Name: "USB_CDC_SUBCLASS_NCM", Value: 13},
{Name: "USB_CDC_UNION_TYPE", Value: 6},
- {Name: "USB_CDC_WHCM_TYPE", Value: 17},
+ {Name: "USB_CLASS_COMM", Value: 2},
{Name: "USB_CLASS_HID", Value: 3},
{Name: "USB_CLASS_PRINTER", Value: 7},
{Name: "USB_CONFIG_ATT_BATTERY", Value: 16},
@@ -50268,6 +50596,11 @@ var consts_ppc64le = []ConstValue{
{Name: "USB_DT_STRING", Value: 3},
{Name: "USB_DT_WIRELESS_ENDPOINT_COMP", Value: 17},
{Name: "USB_DT_WIRE_ADAPTER", Value: 33},
+ {Name: "USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES", Value: 2},
+ {Name: "USB_ENDPOINT_CDC_ECM_IN_ADDRESS", Value: 130},
+ {Name: "USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS", Value: 129},
+ {Name: "USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES", Value: 3},
+ {Name: "USB_ENDPOINT_CDC_ECM_OUT_ADDRESS", Value: 3},
{Name: "USB_ENDPOINT_HID_ATTRIBUTES", Value: 3},
{Name: "USB_ENDPOINT_HID_IN_ADDRESS", Value: 129},
{Name: "USB_ENDPOINT_HID_OUT_ADDRESS", Value: 2},
@@ -50299,6 +50632,7 @@ var consts_ppc64le = []ConstValue{
{Name: "USB_LOW_SPEED_OPERATION", Value: 1},
{Name: "USB_LPM_SUPPORT", Value: 2},
{Name: "USB_LTM_SUPPORT", Value: 2},
+ {Name: "USB_MAJOR", Value: 180},
{Name: "USB_PORT_STAT_CONNECTION", Value: 1},
{Name: "USB_PORT_STAT_C_BH_RESET", Value: 32},
{Name: "USB_PORT_STAT_C_CONFIG_ERROR", Value: 128},
@@ -52077,4 +52411,4 @@ var consts_ppc64le = []ConstValue{
{Name: "bpf_insn_load_imm_dw", Value: 24},
}
-const revision_ppc64le = "d118414cc10f2c07b6a9e1fae0e14db998375343"
+const revision_ppc64le = "a3c972567317d3e84a2e833c05a73c8218815ee9"
diff --git a/sys/linux/init.go b/sys/linux/init.go
index e24e7eb77..5ae9f001d 100644
--- a/sys/linux/init.go
+++ b/sys/linux/init.go
@@ -41,6 +41,7 @@ func InitTarget(target *prog.Target) {
AF_AX25: target.GetConst("AF_AX25"),
AF_NETROM: target.GetConst("AF_NETROM"),
AF_ROSE: target.GetConst("AF_ROSE"),
+ USB_MAJOR: target.GetConst("USB_MAJOR"),
// These are not present on all arches.
ARCH_SET_FS: target.ConstMap["ARCH_SET_FS"],
ARCH_SET_GS: target.ConstMap["ARCH_SET_GS"],
@@ -138,6 +139,7 @@ type arch struct {
AF_AX25 uint64
AF_NETROM uint64
AF_ROSE uint64
+ USB_MAJOR uint64
}
func (arch *arch) sanitizeCall(c *prog.Call) {
@@ -206,6 +208,10 @@ func (arch *arch) sanitizeCall(c *prog.Call) {
switch c.Meta.Name {
case "setsockopt$EBT_SO_SET_ENTRIES":
arch.sanitizeEbtables(c)
+ case "syz_open_dev$char_usb":
+ // Don't allow opening various char and block devices.
+ c.Args[0].(*prog.ConstArg).Val = 0xc
+ c.Args[1].(*prog.ConstArg).Val = arch.USB_MAJOR
}
}
diff --git a/sys/linux/init_vusb.go b/sys/linux/init_vusb.go
index ac7024182..7a61b0942 100644
--- a/sys/linux/init_vusb.go
+++ b/sys/linux/init_vusb.go
@@ -63,6 +63,36 @@ func (arch *arch) generateUsbDeviceDescriptor(g *prog.Gen, typ0 prog.Type, old p
return
}
+ id := randUsbDeviceID(g)
+ bcdDevice := id.BcdDeviceLo + uint16(g.Rand().Intn(int(id.BcdDeviceHi-id.BcdDeviceLo)+1))
+
+ devArg := arg.(*prog.GroupArg).Inner[0]
+ patchGroupArg(devArg, 7, "idVendor", uint64(id.IDVendor))
+ patchGroupArg(devArg, 8, "idProduct", uint64(id.IDProduct))
+ patchGroupArg(devArg, 9, "bcdDevice", uint64(bcdDevice))
+ patchGroupArg(devArg, 3, "bDeviceClass", uint64(id.BDeviceClass))
+ patchGroupArg(devArg, 4, "bDeviceSubClass", uint64(id.BDeviceSubClass))
+ patchGroupArg(devArg, 5, "bDeviceProtocol", uint64(id.BDeviceProtocol))
+
+ configArg := devArg.(*prog.GroupArg).Inner[14].(*prog.GroupArg).Inner[0].(*prog.GroupArg).Inner[0]
+ interfacesArg := configArg.(*prog.GroupArg).Inner[8]
+
+ for i, interfaceArg := range interfacesArg.(*prog.GroupArg).Inner {
+ interfaceArg = interfaceArg.(*prog.GroupArg).Inner[0]
+ if i > 0 {
+ // Generate new IDs for every interface after the first one.
+ id = randUsbDeviceID(g)
+ }
+ patchGroupArg(interfaceArg, 5, "bInterfaceClass", uint64(id.BInterfaceClass))
+ patchGroupArg(interfaceArg, 6, "bInterfaceSubClass", uint64(id.BInterfaceSubClass))
+ patchGroupArg(interfaceArg, 7, "bInterfaceProtocol", uint64(id.BInterfaceProtocol))
+ patchGroupArg(interfaceArg, 2, "bInterfaceNumber", uint64(id.BInterfaceNumber))
+ }
+
+ return
+}
+
+func randUsbDeviceID(g *prog.Gen) UsbDeviceID {
totalIds := len(usbIds) / BytesPerUsbID
idNum := g.Rand().Intn(totalIds)
base := usbIds[idNum*BytesPerUsbID : (idNum+1)*BytesPerUsbID]
@@ -85,7 +115,6 @@ func (arch *arch) generateUsbDeviceDescriptor(g *prog.Gen, typ0 prog.Type, old p
if (id.MatchFlags & USB_DEVICE_ID_MATCH_DEV_HI) == 0 {
id.BcdDeviceHi = 0xffff
}
- bcdDevice := id.BcdDeviceLo + uint16(g.Rand().Intn(int(id.BcdDeviceHi-id.BcdDeviceLo)+1))
if (id.MatchFlags & USB_DEVICE_ID_MATCH_DEV_CLASS) == 0 {
id.BDeviceClass = uint8(g.Rand().Intn(0xff + 1))
}
@@ -108,23 +137,7 @@ func (arch *arch) generateUsbDeviceDescriptor(g *prog.Gen, typ0 prog.Type, old p
id.BInterfaceNumber = uint8(g.Rand().Intn(0xff + 1))
}
- devArg := arg.(*prog.GroupArg).Inner[0]
- patchGroupArg(devArg, 7, "idVendor", uint64(id.IDVendor))
- patchGroupArg(devArg, 8, "idProduct", uint64(id.IDProduct))
- patchGroupArg(devArg, 9, "bcdDevice", uint64(bcdDevice))
- patchGroupArg(devArg, 3, "bDeviceClass", uint64(id.BDeviceClass))
- patchGroupArg(devArg, 4, "bDeviceSubClass", uint64(id.BDeviceSubClass))
- patchGroupArg(devArg, 5, "bDeviceProtocol", uint64(id.BDeviceProtocol))
-
- configArg := devArg.(*prog.GroupArg).Inner[14].(*prog.GroupArg).Inner[0].(*prog.GroupArg).Inner[0]
- interfaceArg := configArg.(*prog.GroupArg).Inner[8].(*prog.GroupArg).Inner[0].(*prog.GroupArg).Inner[0]
-
- patchGroupArg(interfaceArg, 5, "bInterfaceClass", uint64(id.BInterfaceClass))
- patchGroupArg(interfaceArg, 6, "bInterfaceSubClass", uint64(id.BInterfaceSubClass))
- patchGroupArg(interfaceArg, 7, "bInterfaceProtocol", uint64(id.BInterfaceProtocol))
- patchGroupArg(interfaceArg, 2, "bInterfaceNumber", uint64(id.BInterfaceNumber))
-
- return
+ return id
}
func (arch *arch) generateUsbHidDeviceDescriptor(g *prog.Gen, typ0 prog.Type, old prog.Arg) (
diff --git a/sys/linux/init_vusb_ids.go b/sys/linux/init_vusb_ids.go
index fd8bcdc36..1457ebc6a 100644
--- a/sys/linux/init_vusb_ids.go
+++ b/sys/linux/init_vusb_ids.go
@@ -5612,6 +5612,7 @@ var usbIds = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
"\x03\x04\x14\x15\b \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02" +
"\x03\x04 1 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04" +
"\x03\x04 3 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04" +
+ "\x03\x04 ` \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04" +
"\x03\x04-\x1eS\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04" +
"\x03\x04-\x1e`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04" +
"\x03\x04-\x1ec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n" +
@@ -6045,7 +6046,7 @@ var usbIds = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
"\x0f\x00-\x15a\x95\x00\x00\x99\x99\x00\x00\x00\x00\x00\x00\x00" +
"\x0f\x00-\x15f%\x14\x01\x14\x01\x00\x00\x00\x00\x00\x00\x00" +
"\x0f\x00-\x15g\x05\x00\x00\x99\x99\x00\x00\x00\x00\x00\x00\x00" +
- "\x0f\x00-\x15g\x05\x14\x01\x16\x01\x00\x00\x00\x00\x00\x00\x00" +
+ "\x0f\x00-\x15g\x05\x14\x01\x17\x01\x00\x00\x00\x00\x00\x00\x00" +
"\x0f\x00-\x15g%\x17\x01\x17\x01\x00\x00\x00\x00\x00\x00\x00" +
"\x0f\x00-\x15x\x05\x00\x00\x99\x99\x00\x00\x00\x00\x00\x00\x00" +
"\x0f\x005'\v\x10\x00\x00\x99\x99\x00\x00\x00\x00\x00\x00\x00" +
@@ -6877,10 +6878,12 @@ var usbIds = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
"\x83\x00\x01 \x0e}\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x00\x01 \x19~\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x00\x01 5~\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
+ "\x83\x00\x01 =~\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x00\x0e\x1e\x03\x90\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x00\x0e\x1e\x11\x90\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x00 \x00@\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x00 1 \x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
+ "\x83\x00 ` \x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x00-\x1eU\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x00-\x1e\x82\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x00-\x1e\x83\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
@@ -7316,8 +7319,12 @@ var usbIds = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
"\x83\x03\xb7 @\x15\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x03\xb8\ax\x81\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
"\x83\x03\xb8\a\x89\x81\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
+ "\x83\x03\xb8\"\n.\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
+ "\x83\x03\xb8\"\x0e\x90\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
"\x83\x03\xb8\"%d\x00\x00\x00\x00\x00\x00\x00\x02\n\x00\x00" +
"\x83\x03\xb8\"'`\x00\x00\x00\x00\x00\x00\x00\x02\n\x00\x00" +
+ "\x83\x03\xb8\"p*\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
+ "\x83\x03\xb8\"\x81B\x00\x00\x00\x00\x00\x00\x00\n\x00\xfc\x00" +
"\x83\x03\xbb\x04L\t\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
"\x83\x03\xbb\x04P\t\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
"\x83\x03\xc0\x16\xdf\x05\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00" +
@@ -7708,6 +7715,7 @@ var usbIds = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x
"\x83\x03\xd2\x19\x81\x10\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
"\x83\x03\xd2\x19\x81\x11\x00\x00\x00\x00\x00\x00\x00\x02\x06\x00\x00" +
"\x83\x03\xd2\x19\x81\x12\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
+ "\x83\x03\xd2\x19\x81\x14\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\x00" +
"\x83\x03\xd2\x19\x81\xff\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
"\x83\x03\xd2\x19\x82\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
"\x83\x03\xd2\x19\x82\x10\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\x00" +
@@ -8057,6 +8065,7 @@ var hidIds = "\x03\x00\x00\x00\x03\x04\x00\x00\xc1\x97\x00\x00" +
"\x03\x00\x00\x00O\x04\x00\x00\x00\xb3\x00\x00" +
"\x03\x00\x00\x00O\x04\x00\x00\x04\xb3\x00\x00" +
"\x03\x00\x00\x00O\x04\x00\x00\x05\xb6\x00\x00" +
+ "\x03\x00\x00\x00O\x04\x00\x00 \xb3\x00\x00" +
"\x03\x00\x00\x00O\x04\x00\x00#\xb3\x00\x00" +
"\x03\x00\x00\x00O\x04\x00\x00$\xb3\x00\x00" +
"\x03\x00\x00\x00O\x04\x00\x00Q\xb6\x00\x00" +
@@ -8132,14 +8141,19 @@ var hidIds = "\x03\x00\x00\x00\x03\x04\x00\x00\xc1\x97\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x002\xc5\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x004\xc5\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x009\xc5\x00\x00" +
+ "\x03\x00\x00\x00m\x04\x00\x00:\xc5\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x00O\xc2\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x00b\xc2\x00\x00" +
- "\x03\x00\x00\x00m\x04\x00\x00k\xc0\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x00\x81\xc0\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x00\x82\xc0\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x00\x83\xc2\x00\x00" +
+ "\x03\x00\x00\x00m\x04\x00\x00\x86\xc0\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x00\x86\xc2\x00\x00" +
+ "\x03\x00\x00\x00m\x04\x00\x00\x87\xc0\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x00\x87\xc2\x00\x00" +
+ "\x03\x00\x00\x00m\x04\x00\x00\x88\xc0\x00\x00" +
+ "\x03\x00\x00\x00m\x04\x00\x00\x90\xc0\x00\x00" +
+ "\x03\x00\x00\x00m\x04\x00\x00\x91\xc0\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x00\x93\xc2\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x00\x94\xc2\x00\x00" +
"\x03\x00\x00\x00m\x04\x00\x00\x95\xc2\x00\x00" +
diff --git a/sys/linux/vusb.txt b/sys/linux/vusb.txt
index 413b372fc..5a306fc80 100644
--- a/sys/linux/vusb.txt
+++ b/sys/linux/vusb.txt
@@ -12,6 +12,8 @@ include <uapi/linux/hid.h>
include <linux/hid.h>
include <uapi/linux/usb/cdc.h>
include <uapi/linux/if_ether.h>
+include <linux/interrupt.h>
+include <linux/usb/cdc_ncm.h>
include <drivers/net/usb/asix.h>
# This is a special fd for USB fuzzing and should only be used with syz_usb_* syzcalls.
@@ -19,6 +21,8 @@ include <drivers/net/usb/asix.h>
resource fd_usb[int32]: -1
resource fd_usb_hid[fd_usb]
resource fd_usb_printer[fd_usb]
+resource fd_usb_cdc_ecm[fd_usb]
+resource fd_usb_cdc_ncm[fd_usb]
# These are generic syzcalls for emulating arbitrary USB devices.
# They are mostly targeted to cover the enumeration process.
@@ -28,14 +32,22 @@ syz_usb_ep_write(fd fd_usb, ep int16[0:31], len len[data], data buffer[in])
syz_usb_ep_read(fd fd_usb, ep int16[0:31], len len[data], data buffer[out])
syz_usb_disconnect(fd fd_usb)
-# These are syzcalls that specifically target the HID device class.
+# These syzcalls specifically target the HID device class.
syz_usb_connect$hid(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_hid], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_hid
syz_usb_control_io$hid(fd fd_usb_hid, descs ptr[in, vusb_descriptors_hid], resps ptr[in, vusb_responses_hid])
-# These are syzcalls that specifically target the PRINTER device class.
+# These syzcalls specifically target the PRINTER device class.
syz_usb_connect$printer(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_printer], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_printer
syz_usb_control_io$printer(fd fd_usb_printer, descs ptr[in, vusb_descriptors_printer], resps ptr[in, vusb_responses_printer])
+# These syzcalls specifically target the CDC ECM (Ethernet) device class.
+syz_usb_connect$cdc_ecm(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_cdc_ecm], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_cdc_ecm
+syz_usb_control_io$cdc_ecm(fd fd_usb_cdc_ecm, descs ptr[in, vusb_descriptors_cdc_ecm], resps ptr[in, vusb_responses_cdc_ecm])
+
+# These syzcalls specifically target the CDC NCM device class.
+syz_usb_connect$cdc_ncm(speed flags[usb_device_speed], dev_len len[dev], dev ptr[in, usb_device_descriptor_cdc_ncm], conn_descs ptr[in, vusb_connect_descriptors]) fd_usb_cdc_ncm
+syz_usb_control_io$cdc_ncm(fd fd_usb_cdc_ncm, descs ptr[in, vusb_descriptors_cdc_ncm], resps ptr[in, vusb_responses_cdc_ncm])
+
usb_device_speed = USB_SPEED_UNKNOWN, USB_SPEED_LOW, USB_SPEED_FULL, USB_SPEED_HIGH, USB_SPEED_WIRELESS, USB_SPEED_SUPER, USB_SPEED_SUPER_PLUS
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
@@ -50,13 +62,13 @@ type usb_device_descriptor_t[CLASS, SUBCLASS, PROTOCOL, VENDOR, PRODUCT, DEVICE,
bDeviceClass const[CLASS, int8]
bDeviceSubClass const[SUBCLASS, int8]
bDeviceProtocol const[PROTOCOL, int8]
- bMaxPacketSize0 flags[usb_max_packet_sizes, int8]
+ bMaxPacketSize0 flags[usb_device_max_packet_sizes, int8]
idVendor const[VENDOR, int16]
idProduct const[PRODUCT, int16]
bcdDevice const[DEVICE, int16]
- iManufacturer int8
- iProduct int8
- iSerialNumber int8
+ iManufacturer const[1, int8]
+ iProduct const[2, int8]
+ iSerialNumber const[3, int8]
bNumConfigurations len[configs, int8]
configs CFS
@@ -65,14 +77,14 @@ type usb_device_descriptor_t[CLASS, SUBCLASS, PROTOCOL, VENDOR, PRODUCT, DEVICE,
usb_versions = 0x110, 0x200, 0x201, 0x250, 0x300, 0x310
# https://elixir.bootlin.com/linux/v5.1.7/source/drivers/usb/core/hub.c#L4661
-usb_max_packet_sizes = 8, 16, 32, 64
+usb_device_max_packet_sizes = 8, 16, 32, 64, 255
-type usb_config_descriptor_t[NUM, ATTRS, IFS] {
+type usb_config_descriptor_t[NUM, IFSNUM, ATTRS, IFS] {
bLength const[USB_DT_CONFIG_SIZE, int8]
bDescriptorType const[USB_DT_CONFIG, int8]
wTotalLength len[parent, int16]
- bNumInterfaces len[interfaces, int8]
+ bNumInterfaces IFSNUM
bConfigurationValue NUM
iConfiguration int8
bmAttributes ATTRS
@@ -81,13 +93,15 @@ type usb_config_descriptor_t[NUM, ATTRS, IFS] {
interfaces IFS
} [packed]
-type usb_interface_descriptor_t[IFNUM, CLASS, SUBCLASS, PROTOCOL, EXTRA, EPS] {
+type usb_config_descriptor_ifaces_array_t[NUM, ATTRS, IFS] usb_config_descriptor_t[NUM, len[interfaces, int8], ATTRS, IFS]
+
+type usb_interface_descriptor_t[IFNUM, ALTNUM, EPSNUM, CLASS, SUBCLASS, PROTOCOL, EXTRA, EPS] {
bLength const[USB_DT_INTERFACE_SIZE, int8]
bDescriptorType const[USB_DT_INTERFACE, int8]
bInterfaceNumber IFNUM
- bAlternateSetting int8
- bNumEndpoints len[endpoints, int8]
+ bAlternateSetting ALTNUM
+ bNumEndpoints EPSNUM
bInterfaceClass CLASS
bInterfaceSubClass SUBCLASS
bInterfaceProtocol PROTOCOL
@@ -97,6 +111,8 @@ type usb_interface_descriptor_t[IFNUM, CLASS, SUBCLASS, PROTOCOL, EXTRA, EPS] {
endpoints EPS
} [packed]
+type usb_interface_descriptor_eps_array_t[IFNUM, ALTNUM, CLASS, SUBCLASS, PROTOCOL, EXTRA, EPS] usb_interface_descriptor_t[IFNUM, ALTNUM, len[endpoints, int8], CLASS, SUBCLASS, PROTOCOL, EXTRA, EPS]
+
# TODO: Some endpoints have USB_DT_ENDPOINT_SIZE.
type usb_endpoint_descriptor_t[ADDR, ATTRS, EXTRA] {
bLength const[USB_DT_ENDPOINT_AUDIO_SIZE, int8]
@@ -104,7 +120,7 @@ type usb_endpoint_descriptor_t[ADDR, ATTRS, EXTRA] {
bEndpointAddress ADDR
bmAttributes ATTRS
- wMaxPacketSize flags[usb_max_packet_sizes, int16]
+ wMaxPacketSize int16[0:1024]
bInterval int8
bRefresh int8
@@ -119,16 +135,15 @@ type usb_endpoint_descriptor_t[ADDR, ATTRS, EXTRA] {
# Generic USB device, configuration, interface and endpoint descriptors.
-# TODO: support more than one configuration.
+# We only support one configuration per device.
# bDeviceClass, bDeviceSubClass, bDeviceProtocol, idVendor, idProduct
# and bcdDevice are patched by Go code, see sys/linux/init_vusb.go.
usb_device_descriptor {
inner usb_device_descriptor_t[0, 0, 0, 0, 0, 0, array[usb_config_descriptor, 1]]
} [packed]
-# TODO: support more than one interface.
usb_config_descriptor {
- inner usb_config_descriptor_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1]]
+ inner usb_config_descriptor_ifaces_array_t[int8, flags[usb_config_attributes, int8], array[usb_interface_descriptor, 1:4]]
} [packed]
usb_config_attributes = USB_CONFIG_ATT_ONE, USB_CONFIG_ATT_SELFPOWER, USB_CONFIG_ATT_WAKEUP, USB_CONFIG_ATT_BATTERY
@@ -136,7 +151,7 @@ usb_config_attributes = USB_CONFIG_ATT_ONE, USB_CONFIG_ATT_SELFPOWER, USB_CONFIG
# bInterfaceNumber, bInterfaceClass, bInterfaceSubClass and bInterfaceProtocol
# are patched by Go code, see sys/linux/init_vusb.go.
usb_interface_descriptor {
- inner usb_interface_descriptor_t[const[0, int8], const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]
+ inner usb_interface_descriptor_eps_array_t[const[0, int8], int8, const[0, int8], const[0, int8], const[0, int8], array[usb_interface_extra_descriptor, 0:2], array[usb_endpoint_descriptor, 0:16]]
} [packed]
usb_endpoint_descriptor {
@@ -208,9 +223,6 @@ vusb_responses {
hub_USB_REQ_GET_STATUS_hub ptr[in, vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_hub_status]]
hub_USB_REQ_GET_STATUS_port ptr[in, vusb_response_t[USB_TYPE_CLASS, USB_REQ_GET_STATUS, usb_port_status]]
-# TODO: https://elixir.bootlin.com/linux/v5.2.6/source/include/uapi/linux/usb/cdc.h#L233
- cdc_USB_CDC_GET_NTB_PARAMETERS ptr[in, vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]]
-
asix_AX_CMD_READ_MII_REG ptr[in, vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_MII_REG, int16]]
asix_AX_CMD_STATMNGSTS_REG ptr[in, vusb_response_t[USB_TYPE_VENDOR, AX_CMD_STATMNGSTS_REG, int8]]
asix_AX_CMD_READ_EEPROM ptr[in, vusb_response_t[USB_TYPE_VENDOR, AX_CMD_READ_EEPROM, array[int8, 2]]]
@@ -246,14 +258,18 @@ type vusb_response_t[CLASS, REQ, DATA] {
# USB descriptors requested by the kernel before the SET_CONFIGURATION request.
-usb_string_descriptor {
+type usb_string_descriptor_t[DATA] {
bLength len[parent, int8]
bDescriptorType const[USB_DT_STRING, int8]
- lang_id flags[usb_lang_ids, int16]
- data array[int8]
+ data DATA
} [packed]
+usb_string_descriptor [
+ lang_id usb_string_descriptor_t[flags[usb_lang_ids, int16]]
+ string usb_string_descriptor_t[array[int8]]
+] [varlen]
+
usb_lang_ids = 0x436, 0x41c, 0x401, 0x801, 0xc01, 0x1001, 0x1401, 0x1801, 0x1c01, 0x2001, 0x2401, 0x2801, 0x2c01, 0x3001, 0x3401, 0x3801, 0x3c01, 0x4001, 0x42b, 0x44d, 0x42c, 0x82c, 0x42d, 0x423, 0x445, 0x402, 0x455, 0x403, 0x404, 0x804, 0xc04, 0x1004, 0x1404, 0x41a, 0x405, 0x406, 0x413, 0x813, 0x409, 0x809, 0xc09, 0x1009, 0x1409, 0x1809, 0x1c09, 0x2009, 0x2409, 0x2809, 0x2c09, 0x3009, 0x3409, 0x425, 0x438, 0x429, 0x40b, 0x40c, 0x80c, 0xc0c, 0x100c, 0x140c, 0x180c, 0x437, 0x407, 0x807, 0xc07, 0x1007, 0x1407, 0x408, 0x447, 0x40d, 0x439, 0x40e, 0x40f, 0x421, 0x410, 0x810, 0x411, 0x44b, 0x860, 0x43f, 0x457, 0x412, 0x812, 0x426, 0x427, 0x827, 0x42f, 0x43e, 0x83e, 0x44c, 0x458, 0x44e, 0x861, 0x414, 0x814, 0x448, 0x415, 0x416, 0x816, 0x446, 0x418, 0x419, 0x44f, 0xc1a, 0x81a, 0x459, 0x41b, 0x424, 0x40a, 0x80a, 0xc0a, 0x100a, 0x140a, 0x180a, 0x1c0a, 0x200a, 0x240a, 0x280a, 0x2c0a, 0x300a, 0x340a, 0x380a, 0x3c0a, 0x400a, 0x440a, 0x480a, 0x4c0a, 0x500a, 0x430, 0x441, 0x41d, 0x81d, 0x449, 0x444, 0x44a, 0x41e, 0x41f, 0x422, 0x420, 0x820, 0x443, 0x843, 0x42a, 0x4ff, 0xf0ff, 0xf4ff, 0xf8ff, 0xfcff
usb_qualifier_descriptor {
@@ -264,7 +280,7 @@ usb_qualifier_descriptor {
bDeviceClass int8
bDeviceSubClass int8
bDeviceProtocol int8
- bMaxPacketSize0 flags[usb_max_packet_sizes, int8]
+ bMaxPacketSize0 flags[usb_device_max_packet_sizes, int8]
bNumConfigurations int8
bRESERVED const[0, int8]
} [packed]
@@ -384,8 +400,6 @@ usb_ptm_cap_descriptor {
# Extra USB descriptors that come after an interface or an endpoint descriptor.
-# CHECK: cdc_parse_cdc_header (iface)
-
# TODO: uas_find_endpoints (endpoint)
# TODO: rpipe_epc_find (endpoint)
# TODO: uvc_parse_streaming (iface)
@@ -402,7 +416,7 @@ usb_ptm_cap_descriptor {
usb_interface_extra_descriptor [
generic usb_generic_descriptor
hid_hid usb_hid_descriptor_hid
- usb_cdc usb_cdc_header
+ usb_cdc usb_cdc_header_ethernet
] [varlen]
usb_endpoint_extra_descriptor [
@@ -418,176 +432,6 @@ usb_generic_descriptor {
usb_descriptor_types = USB_DT_DEVICE, USB_DT_CONFIG, USB_DT_STRING, USB_DT_INTERFACE, USB_DT_ENDPOINT, USB_DT_DEVICE_QUALIFIER, USB_DT_OTHER_SPEED_CONFIG, USB_DT_INTERFACE_POWER, USB_DT_OTG, USB_DT_DEBUG, USB_DT_INTERFACE_ASSOCIATION, USB_DT_SECURITY, USB_DT_KEY, USB_DT_ENCRYPTION_TYPE, USB_DT_BOS, USB_DT_DEVICE_CAPABILITY, USB_DT_WIRELESS_ENDPOINT_COMP, USB_DT_WIRE_ADAPTER, USB_DT_RPIPE, USB_DT_CS_RADIO_CONTROL, USB_DT_PIPE_USAGE, USB_DT_SS_ENDPOINT_COMP, USB_DT_SSP_ISOC_ENDPOINT_COMP, HID_DT_HID, HID_DT_REPORT, HID_DT_PHYSICAL
-usb_cdc_header {
- items array[usb_cdc_header_item, 0:16]
-} [packed]
-
-usb_cdc_header_item [
- generic usb_cdc_generic
- header usb_cdc_header_desc
- call_mgmt usb_cdc_call_mgmt_descriptor
- acm usb_cdc_acm_descriptor
- union usb_cdc_union_desc
- country_functional usb_cdc_country_functional_desc
- network_terminal usb_cdc_network_terminal_desc
- ether usb_cdc_ether_desc
- dmm usb_cdc_dmm_desc
- mdlm usb_cdc_mdlm_desc
- mdlm_detail usb_cdc_mdlm_detail_desc
- obex usb_cdc_obex_desc
- ncm usb_cdc_ncm_desc
- mbim usb_cdc_mbim_desc
- mbim_extended usb_cdc_mbim_extended_desc
-] [varlen]
-
-usb_cdc_generic {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType flags[usb_cdc_types, int8]
-
- data array[int8]
-} [packed]
-
-usb_cdc_types = USB_CDC_HEADER_TYPE, USB_CDC_CALL_MANAGEMENT_TYPE, USB_CDC_ACM_TYPE, USB_CDC_UNION_TYPE, USB_CDC_COUNTRY_TYPE, USB_CDC_NETWORK_TERMINAL_TYPE, USB_CDC_ETHERNET_TYPE, USB_CDC_WHCM_TYPE, USB_CDC_MDLM_TYPE, USB_CDC_MDLM_DETAIL_TYPE, USB_CDC_DMM_TYPE, USB_CDC_OBEX_TYPE, USB_CDC_NCM_TYPE, USB_CDC_MBIM_TYPE, USB_CDC_MBIM_EXTENDED_TYPE
-
-usb_cdc_header_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_HEADER_TYPE, int8]
-
- bcdCDC int16
-} [packed]
-
-usb_cdc_call_mgmt_descriptor {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_CALL_MANAGEMENT_TYPE, int8]
-
- bmCapabilities flags[usb_cdc_call_mgmt_caps, int8]
-} [packed]
-
-usb_cdc_call_mgmt_caps = USB_CDC_CALL_MGMT_CAP_CALL_MGMT, USB_CDC_CALL_MGMT_CAP_DATA_INTF
-
-usb_cdc_acm_descriptor {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_ACM_TYPE, int8]
-
- bmCapabilities flags[usb_cdc_acm_caps, int8]
-} [packed]
-
-usb_cdc_acm_caps = USB_CDC_COMM_FEATURE, USB_CDC_CAP_LINE, USB_CDC_CAP_BRK, USB_CDC_CAP_NOTIFY
-
-usb_cdc_union_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_UNION_TYPE, int8]
-
- bMasterInterface0 int8
- bSlaveInterface0 int8
- slave_interfaces array[int8, 0:6]
-} [packed]
-
-usb_cdc_country_functional_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_COUNTRY_TYPE, int8]
-
- iCountryCodeRelDate int8
- wCountyCode0 int16
- country_codes array[int16, 0:6]
-} [packed]
-
-usb_cdc_network_terminal_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_NETWORK_TERMINAL_TYPE, int8]
-
- bEntityId int8
- iName int8
- bChannelIndex int8
- bPhysicalInterface int8
-} [packed]
-
-usb_cdc_ether_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_ETHERNET_TYPE, int8]
-
- iMACAddress int8
- bmEthernetStatistics int32
- wMaxSegmentSize int16
- wNumberMCFilters int16
- bNumberPowerFilters int8
-} [packed]
-
-usb_cdc_dmm_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_DMM_TYPE, int8]
-
- bcdVersion int16
- wMaxCommand int16
-} [packed]
-
-usb_cdc_mdlm_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_MDLM_TYPE, int8]
-
- bcdVersion int16
- bGUID array[int8, 16]
-} [packed]
-
-usb_cdc_mdlm_detail_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_MDLM_DETAIL_TYPE, int8]
-
- bGuidDescriptorType int8
- bDetailData array[int8]
-} [packed]
-
-usb_cdc_obex_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_OBEX_TYPE, int8]
-
- bcdVersion int16
-} [packed]
-
-usb_cdc_ncm_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_NCM_TYPE, int8]
-
- bcdNcmVersion int16
- bmNetworkCapabilities int8
-} [packed]
-
-usb_cdc_mbim_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_MBIM_TYPE, int8]
-
- bcdMBIMVersion int16
- wMaxControlMessage int16
- bNumberFilters int8
- bMaxFilterSize int8
- wMaxSegmentSize int16
- bmNetworkCapabilities int8
-} [packed]
-
-usb_cdc_mbim_extended_desc {
- bLength len[parent, int8]
- bDescriptorType const[USB_DT_CS_INTERFACE, int8]
- bDescriptorSubType const[USB_CDC_MBIM_EXTENDED_TYPE, int8]
-
- bcdMBIMExtendedVersion int16
- bMaxOutstandingCommandMessages int8
- wMTU int16
-} [packed]
-
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
@@ -652,21 +496,6 @@ usb_hub_status_flags = HUB_STATUS_LOCAL_POWER, HUB_STATUS_OVERCURRENT
usb_hub_change_flags = HUB_CHANGE_LOCAL_POWER, HUB_CHANGE_OVERCURRENT
-usb_cdc_ncm_ntb_parameters {
- wLength int16
- bmNtbFormatsSupported int16
- dwNtbInMaxSize int32
- wNdpInDivisor int16
- wNdpInPayloadRemainder int16
- wNdpInAlignment int16
- wPadding1 int16
- dwNtbOutMaxSize int32
- wNdpOutDivisor int16
- wNdpOutPayloadRemainder int16
- wNdpOutAlignment int16
- wNtbOutMaxDatagrams int16
-} [packed]
-
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
@@ -687,11 +516,11 @@ usb_device_descriptor_hid {
} [packed]
usb_config_descriptor_hid {
- inner usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]
+ inner usb_config_descriptor_ifaces_array_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_hid, 1]]
} [packed]
usb_interface_descriptor_hid {
- inner usb_interface_descriptor_t[int8, const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]
+ inner usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_HID, int8], const[USB_INTERFACE_SUBCLASS_BOOT, int8], flags[usb_hid_protocols, int8], usb_hid_descriptor_hid, usb_endpoint_descriptors_hid]
} [packed]
usb_hid_protocols = 0, USB_INTERFACE_PROTOCOL_KEYBOARD, USB_INTERFACE_PROTOCOL_MOUSE
@@ -733,7 +562,7 @@ vusb_responses_hid {
USB_REQ_GET_CONFIGURATION ptr[in, vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]]
HID_REQ_GET_REPORT ptr[in, vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, array[int8]]]
- HID_REQ_GET_PROTOCOL ptr[in, vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_REPORT, int8]]
+ HID_REQ_GET_PROTOCOL ptr[in, vusb_response_t[USB_TYPE_CLASS, HID_REQ_GET_PROTOCOL, int8]]
} [packed]
# USB HID specifications allows for multiple report and physical descriptors
@@ -817,15 +646,15 @@ define USBLP_LAST_PROTOCOL 3
# TODO: consider patching idVendor and idProduct in Go code.
usb_device_descriptor_printer {
- inner usb_device_descriptor_t[0, 0, 0, 0x3f0, 0x6c17, 64, array[usb_config_descriptor_printer, 1]]
+ inner usb_device_descriptor_t[0, 0, 0, 0x525, 0xa4a8, 64, array[usb_config_descriptor_printer, 1]]
} [packed]
usb_config_descriptor_printer {
- inner usb_config_descriptor_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]
+ inner usb_config_descriptor_ifaces_array_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_printer, 1]]
} [packed]
usb_interface_descriptor_printer {
- inner usb_interface_descriptor_t[int8, const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]
+ inner usb_interface_descriptor_t[const[0, int8], int8, int8[1:2], const[USB_CLASS_PRINTER, int8], const[1, int8], int8[USBLP_FIRST_PROTOCOL:USBLP_LAST_PROTOCOL], void, usb_endpoint_descriptors_printer]
} [packed]
usb_endpoint_descriptors_printer {
@@ -841,7 +670,7 @@ usb_endpoint_descriptor_printer_in {
inner usb_endpoint_descriptor_t[const[USB_ENDPOINT_PRINTER_IN_ADDRESS, int8], const[USB_ENDPOINT_PRINTER_ATTRIBUTES, int8], void]
} [packed]
-define USB_ENDPOINT_PRINTER_ATTRIBUTES (USB_ENDPOINT_XFER_BULK | USB_ENDPOINT_SYNC_NONE | USB_ENDPOINT_USAGE_DATA)
+define USB_ENDPOINT_PRINTER_ATTRIBUTES (USB_ENDPOINT_XFER_BULK)
define USB_ENDPOINT_PRINTER_OUT_ADDRESS (1)
define USB_ENDPOINT_PRINTER_IN_ADDRESS (2 | USB_DIR_IN)
@@ -872,3 +701,346 @@ usb_printer_get_id_response {
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+# CDC ECM (Ethernet) device class specific descriptions.
+# https://www.usb.org/document-library/class-definitions-communication-devices-12
+# https://elixir.bootlin.com/linux/latest/source/drivers/net/usb/cdc_ether.c
+# https://elixir.bootlin.com/linux/latest/source/drivers/net/usb/usbnet.c
+# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/legacy/ether.c
+# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/function/f_ecm.c
+# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/function/u_ether.c
+
+# Connected CDC ECM devices are known to create usbN network interfaces.
+# TODO: enable fuzzing of those.
+
+# TODO: currently the only endpoint which is being successfully enabled is the notification endpoint #1.
+
+# TODO: consider patching idVendor and idProduct in Go code.
+usb_device_descriptor_cdc_ecm {
+ inner usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ecm, 1]]
+} [packed]
+
+usb_config_descriptor_cdc_ecm {
+ inner usb_config_descriptor_ifaces_array_t[const[1, int8], flags[usb_config_attributes, int8], array[usb_interface_descriptor_cdc_ecm, 1]]
+} [packed]
+
+# Per specification CDC ECM devices have two interfaces (control and data),
+# but here we're merging them into one for simplicity since Linux supports that.
+usb_interface_descriptor_cdc_ecm {
+ inner usb_interface_descriptor_t[const[0, int8], int8, int8[2:3], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_ETHERNET, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ethernet, usb_endpoint_descriptors_cdc_ecm]
+} [packed]
+
+usb_endpoint_descriptors_cdc_ecm {
+ notify array[usb_endpoint_descriptor_cdc_ecm_notify, 0:1]
+ in usb_endpoint_descriptor_cdc_ecm_in
+ out usb_endpoint_descriptor_cdc_ecm_out
+} [packed]
+
+usb_endpoint_descriptor_cdc_ecm_notify {
+ inner usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES, int8], void]
+} [packed]
+
+usb_endpoint_descriptor_cdc_ecm_in {
+ inner usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_IN_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]
+} [packed]
+
+usb_endpoint_descriptor_cdc_ecm_out {
+ inner usb_endpoint_descriptor_t[const[USB_ENDPOINT_CDC_ECM_OUT_ADDRESS, int8], const[USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES, int8], void]
+} [packed]
+
+define USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES (USB_ENDPOINT_XFER_INT)
+define USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES (USB_ENDPOINT_XFER_BULK)
+define USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS (1 | USB_DIR_IN)
+define USB_ENDPOINT_CDC_ECM_IN_ADDRESS (2 | USB_DIR_IN)
+define USB_ENDPOINT_CDC_ECM_OUT_ADDRESS (3)
+
+# https://elixir.bootlin.com/linux/v5.2.7/source/drivers/usb/core/message.c#L2137
+# https://elixir.bootlin.com/linux/v5.2.7/source/drivers/net/usb/cdc_ether.c#L155
+usb_cdc_header_ethernet {
+ union usb_cdc_union_desc_t[0, 0]
+ header usb_cdc_header_desc
+ ether usb_cdc_ether_desc
+
+ other array[usb_cdc_header_ethernet_other, 0:6]
+} [packed]
+
+usb_cdc_header_ethernet_other [
+ call_mgmt usb_cdc_call_mgmt_descriptor
+ acm usb_cdc_acm_descriptor
+ country_functional usb_cdc_country_functional_desc
+ network_terminal usb_cdc_network_terminal_desc
+ dmm usb_cdc_dmm_desc
+ mdlm usb_cdc_mdlm_desc
+ mdlm_detail usb_cdc_mdlm_detail_desc
+ obex usb_cdc_obex_desc
+ ncm usb_cdc_ncm_desc
+ mbim usb_cdc_mbim_desc
+ mbim_extended usb_cdc_mbim_extended_desc
+] [varlen]
+
+usb_cdc_header_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_HEADER_TYPE, int8]
+
+ bcdCDC int16
+} [packed]
+
+usb_cdc_call_mgmt_descriptor {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_CALL_MANAGEMENT_TYPE, int8]
+
+ bmCapabilities flags[usb_cdc_call_mgmt_caps, int8]
+ bDataInterface int8
+} [packed]
+
+usb_cdc_call_mgmt_caps = USB_CDC_CALL_MGMT_CAP_CALL_MGMT, USB_CDC_CALL_MGMT_CAP_DATA_INTF
+
+usb_cdc_acm_descriptor {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_ACM_TYPE, int8]
+
+ bmCapabilities flags[usb_cdc_acm_caps, int8]
+} [packed]
+
+usb_cdc_acm_caps = USB_CDC_COMM_FEATURE, USB_CDC_CAP_LINE, USB_CDC_CAP_BRK, USB_CDC_CAP_NOTIFY
+
+type usb_cdc_union_desc_t[MASTER, SLAVE] {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_UNION_TYPE, int8]
+
+ bMasterInterface0 const[MASTER, int8]
+ bSlaveInterface0 const[SLAVE, int8]
+ slave_interfaces array[int8, 0:6]
+} [packed]
+
+usb_cdc_country_functional_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_COUNTRY_TYPE, int8]
+
+ iCountryCodeRelDate int8
+ wCountyCode0 int16
+ country_codes array[int16, 0:6]
+} [packed]
+
+usb_cdc_network_terminal_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_NETWORK_TERMINAL_TYPE, int8]
+
+ bEntityId int8
+ iName int8
+ bChannelIndex int8
+ bPhysicalInterface int8
+} [packed]
+
+usb_cdc_ether_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_ETHERNET_TYPE, int8]
+
+ iMACAddress const[1, int8]
+ bmEthernetStatistics int32
+ wMaxSegmentSize int16
+ wNumberMCFilters int16
+ bNumberPowerFilters int8
+} [packed]
+
+usb_cdc_dmm_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_DMM_TYPE, int8]
+
+ bcdVersion int16
+ wMaxCommand int16
+} [packed]
+
+usb_cdc_mdlm_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_MDLM_TYPE, int8]
+
+ bcdVersion int16
+ bGUID usb_cdc_ecm_mbm_guid
+} [packed]
+
+# https://elixir.bootlin.com/linux/v5.2.7/source/drivers/net/usb/cdc_ether.c#L61
+usb_cdc_ecm_mbm_guid {
+ id0 const[0x14f5e048ba817a3, int64]
+ id1 const[0x2a397ecbffc007a6, int64]
+} [packed]
+
+usb_cdc_mdlm_detail_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_MDLM_DETAIL_TYPE, int8]
+
+ bGuidDescriptorType int8
+ bDetailData array[int8]
+} [packed]
+
+usb_cdc_obex_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_OBEX_TYPE, int8]
+
+ bcdVersion int16
+} [packed]
+
+usb_cdc_ncm_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_NCM_TYPE, int8]
+
+ bcdNcmVersion int16
+ bmNetworkCapabilities int8
+} [packed]
+
+usb_cdc_mbim_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_MBIM_TYPE, int8]
+
+ bcdMBIMVersion int16
+ wMaxControlMessage int16
+ bNumberFilters int8
+ bMaxFilterSize int8
+ wMaxSegmentSize int16
+ bmNetworkCapabilities int8
+} [packed]
+
+usb_cdc_mbim_extended_desc {
+ bLength len[parent, int8]
+ bDescriptorType const[USB_DT_CS_INTERFACE, int8]
+ bDescriptorSubType const[USB_CDC_MBIM_EXTENDED_TYPE, int8]
+
+ bcdMBIMExtendedVersion int16
+ bMaxOutstandingCommandMessages int8
+ wMTU int16
+} [packed]
+
+vusb_descriptors_cdc_ecm {
+ len len[parent, int32]
+ generic ptr[in, vusb_descriptor_generic]
+
+# https://elixir.bootlin.com/linux/v5.2.7/source/drivers/net/usb/usbnet.c#L147
+ USB_DT_STRING ptr[in, vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]]
+} [packed]
+
+usb_cdc_ecm_mac {
+# This is a UTF16 encoded string "424242424242".
+ data0 const[0x3400320034003200, int64be]
+ data1 const[0x3400320034003200, int64be]
+ data2 const[0x3400320034003200, int64be]
+} [packed]
+
+vusb_responses_cdc_ecm {
+ len len[parent, int32]
+ generic ptr[in, vusb_response_generic]
+
+ USB_REQ_GET_INTERFACE ptr[in, vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]]
+ USB_REQ_GET_CONFIGURATION ptr[in, vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]]
+} [packed]
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+
+# CDC NCM class specific descriptions.
+# CDC NCM is based on CDC ECM, so some of the descriptions are reused.
+# https://www.usb.org/document-library/network-control-model-devices-specification-v10-and-errata-and-adopters-agreement
+# https://elixir.bootlin.com/linux/latest/source/drivers/net/usb/cdc_ncm.c
+# https://elixir.bootlin.com/linux/latest/source/drivers/net/usb/usbnet.c
+# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/legacy/ncm.c
+# https://elixir.bootlin.com/linux/latest/source/drivers/usb/gadget/function/f_ncm.c
+
+# TODO: currently the only endpoint which is being successfully enabled is the notification endpoint #1.
+
+# TODO: consider patching idVendor and idProduct in Go code.
+usb_device_descriptor_cdc_ncm {
+ inner usb_device_descriptor_t[USB_CLASS_COMM, 0, 0, 0x525, 0xa4a1, 64, array[usb_config_descriptor_cdc_ncm, 1]]
+} [packed]
+
+usb_config_descriptor_cdc_ncm {
+ inner usb_config_descriptor_t[const[1, int8], const[2, int8], flags[usb_config_attributes, int8], usb_interface_descriptors_cdc_ncm]
+} [packed]
+
+usb_interface_descriptors_cdc_ncm {
+ control usb_interface_descriptor_t[const[0, int8], const[CDC_NCM_COMM_ALTSETTING_NCM, int8], const[1, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], usb_cdc_header_ncm, usb_endpoint_descriptor_cdc_ecm_notify]
+ data_nop usb_interface_descriptor_t[const[1, int8], const[0, int8], const[0, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, void]
+ data usb_interface_descriptor_t[const[1, int8], const[CDC_NCM_DATA_ALTSETTING_NCM, int8], const[2, int8], const[USB_CLASS_COMM, int8], const[USB_CDC_SUBCLASS_NCM, int8], const[USB_CDC_PROTO_NONE, int8], void, usb_endpoint_descriptors_cdc_ncm_data]
+} [packed]
+
+usb_endpoint_descriptors_cdc_ncm_data {
+ in usb_endpoint_descriptor_cdc_ecm_in
+ out usb_endpoint_descriptor_cdc_ecm_out
+} [packed]
+
+# https://elixir.bootlin.com/linux/v5.2.7/source/drivers/usb/core/message.c#L2137
+# https://elixir.bootlin.com/linux/v5.2.7/source/drivers/net/usb/cdc_ncm.c#L798
+usb_cdc_header_ncm {
+ union usb_cdc_union_desc_t[0, 1]
+ header usb_cdc_header_desc
+ ether usb_cdc_ether_desc
+ ncm usb_cdc_ncm_desc
+
+ other array[usb_cdc_header_ncm_other, 0:6]
+} [packed]
+
+usb_cdc_header_ncm_other [
+ call_mgmt usb_cdc_call_mgmt_descriptor
+ acm usb_cdc_acm_descriptor
+ country_functional usb_cdc_country_functional_desc
+ network_terminal usb_cdc_network_terminal_desc
+ dmm usb_cdc_dmm_desc
+ mdlm usb_cdc_mdlm_desc
+ mdlm_detail usb_cdc_mdlm_detail_desc
+ obex usb_cdc_obex_desc
+ mbim usb_cdc_mbim_desc
+ mbim_extended usb_cdc_mbim_extended_desc
+] [varlen]
+
+vusb_descriptors_cdc_ncm {
+ len len[parent, int32]
+ generic ptr[in, vusb_descriptor_generic]
+
+# https://elixir.bootlin.com/linux/v5.2.7/source/drivers/net/usb/usbnet.c#L147
+ USB_DT_STRING ptr[in, vusb_descriptor_t[USB_TYPE_STANDARD, USB_DT_STRING, usb_string_descriptor_t[usb_cdc_ecm_mac]]]
+} [packed]
+
+vusb_responses_cdc_ncm {
+ len len[parent, int32]
+ generic ptr[in, vusb_response_generic]
+
+ USB_REQ_GET_INTERFACE ptr[in, vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_INTERFACE, int8]]
+ USB_REQ_GET_CONFIGURATION ptr[in, vusb_response_t[USB_TYPE_STANDARD, USB_REQ_GET_CONFIGURATION, int8]]
+
+ USB_CDC_GET_NTB_PARAMETERS ptr[in, vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_PARAMETERS, usb_cdc_ncm_ntb_parameters]]
+ USB_CDC_GET_NTB_INPUT_SIZE ptr[in, vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_INPUT_SIZE, int32]]
+ USB_CDC_GET_NTB_FORMAT ptr[in, vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_NTB_FORMAT, int16[0:1]]]
+ USB_CDC_GET_MAX_DATAGRAM_SIZE ptr[in, vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_MAX_DATAGRAM_SIZE, int16]]
+ USB_CDC_GET_CRC_MODE ptr[in, vusb_response_t[USB_TYPE_CLASS, USB_CDC_GET_CRC_MODE, int16[0:1]]]
+} [packed]
+
+usb_cdc_ncm_ntb_parameters {
+ wLength int16
+ bmNtbFormatsSupported int16
+ dwNtbInMaxSize int32
+ wNdpInDivisor int16
+ wNdpInPayloadRemainder int16
+ wNdpInAlignment int16
+ wPadding1 int16
+ dwNtbOutMaxSize int32
+ wNdpOutDivisor int16
+ wNdpOutPayloadRemainder int16
+ wNdpOutAlignment int16
+ wNtbOutMaxDatagrams int16
+} [packed]
+
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
+# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
diff --git a/sys/linux/vusb_386.const b/sys/linux/vusb_386.const
index 7d607df7a..0928f05d0 100644
--- a/sys/linux/vusb_386.const
+++ b/sys/linux/vusb_386.const
@@ -10,6 +10,8 @@ AX_CMD_READ_PHY_ID = 25
AX_CMD_READ_RX_CTL = 15
AX_CMD_STATMNGSTS_REG = 9
AX_CMD_SW_PHY_STATUS = 33
+CDC_NCM_COMM_ALTSETTING_NCM = 0
+CDC_NCM_DATA_ALTSETTING_NCM = 1
CONTAINER_ID_TYPE = 4
HID_DT_HID = 33
HID_DT_PHYSICAL = 35
@@ -45,6 +47,7 @@ HID_MAIN_ITEM_TAG_FEATURE = 11
HID_MAIN_ITEM_TAG_INPUT = 8
HID_MAIN_ITEM_TAG_OUTPUT = 9
HID_MAX_DESCRIPTOR_SIZE = 4096
+HID_REQ_GET_PROTOCOL = 3
HID_REQ_GET_REPORT = 1
HUB_CHANGE_LOCAL_POWER = 1
HUB_CHANGE_OVERCURRENT = 2
@@ -89,6 +92,10 @@ USB_CDC_COMM_FEATURE = 1
USB_CDC_COUNTRY_TYPE = 7
USB_CDC_DMM_TYPE = 20
USB_CDC_ETHERNET_TYPE = 15
+USB_CDC_GET_CRC_MODE = 137
+USB_CDC_GET_MAX_DATAGRAM_SIZE = 135
+USB_CDC_GET_NTB_FORMAT = 131
+USB_CDC_GET_NTB_INPUT_SIZE = 133
USB_CDC_GET_NTB_PARAMETERS = 128
USB_CDC_HEADER_TYPE = 0
USB_CDC_MBIM_EXTENDED_TYPE = 28
@@ -98,8 +105,11 @@ USB_CDC_MDLM_TYPE = 18
USB_CDC_NCM_TYPE = 26
USB_CDC_NETWORK_TERMINAL_TYPE = 10
USB_CDC_OBEX_TYPE = 21
+USB_CDC_PROTO_NONE = 0
+USB_CDC_SUBCLASS_ETHERNET = 6
+USB_CDC_SUBCLASS_NCM = 13
USB_CDC_UNION_TYPE = 6
-USB_CDC_WHCM_TYPE = 17
+USB_CLASS_COMM = 2
USB_CLASS_HID = 3
USB_CLASS_PRINTER = 7
USB_CONFIG_ATT_BATTERY = 16
@@ -139,6 +149,11 @@ USB_DT_SS_HUB = 42
USB_DT_STRING = 3
USB_DT_WIRELESS_ENDPOINT_COMP = 17
USB_DT_WIRE_ADAPTER = 33
+USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES = 2
+USB_ENDPOINT_CDC_ECM_IN_ADDRESS = 130
+USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS = 129
+USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES = 3
+USB_ENDPOINT_CDC_ECM_OUT_ADDRESS = 3
USB_ENDPOINT_HID_ATTRIBUTES = 3
USB_ENDPOINT_HID_IN_ADDRESS = 129
USB_ENDPOINT_HID_OUT_ADDRESS = 2
diff --git a/sys/linux/vusb_amd64.const b/sys/linux/vusb_amd64.const
index 7d607df7a..0928f05d0 100644
--- a/sys/linux/vusb_amd64.const
+++ b/sys/linux/vusb_amd64.const
@@ -10,6 +10,8 @@ AX_CMD_READ_PHY_ID = 25
AX_CMD_READ_RX_CTL = 15
AX_CMD_STATMNGSTS_REG = 9
AX_CMD_SW_PHY_STATUS = 33
+CDC_NCM_COMM_ALTSETTING_NCM = 0
+CDC_NCM_DATA_ALTSETTING_NCM = 1
CONTAINER_ID_TYPE = 4
HID_DT_HID = 33
HID_DT_PHYSICAL = 35
@@ -45,6 +47,7 @@ HID_MAIN_ITEM_TAG_FEATURE = 11
HID_MAIN_ITEM_TAG_INPUT = 8
HID_MAIN_ITEM_TAG_OUTPUT = 9
HID_MAX_DESCRIPTOR_SIZE = 4096
+HID_REQ_GET_PROTOCOL = 3
HID_REQ_GET_REPORT = 1
HUB_CHANGE_LOCAL_POWER = 1
HUB_CHANGE_OVERCURRENT = 2
@@ -89,6 +92,10 @@ USB_CDC_COMM_FEATURE = 1
USB_CDC_COUNTRY_TYPE = 7
USB_CDC_DMM_TYPE = 20
USB_CDC_ETHERNET_TYPE = 15
+USB_CDC_GET_CRC_MODE = 137
+USB_CDC_GET_MAX_DATAGRAM_SIZE = 135
+USB_CDC_GET_NTB_FORMAT = 131
+USB_CDC_GET_NTB_INPUT_SIZE = 133
USB_CDC_GET_NTB_PARAMETERS = 128
USB_CDC_HEADER_TYPE = 0
USB_CDC_MBIM_EXTENDED_TYPE = 28
@@ -98,8 +105,11 @@ USB_CDC_MDLM_TYPE = 18
USB_CDC_NCM_TYPE = 26
USB_CDC_NETWORK_TERMINAL_TYPE = 10
USB_CDC_OBEX_TYPE = 21
+USB_CDC_PROTO_NONE = 0
+USB_CDC_SUBCLASS_ETHERNET = 6
+USB_CDC_SUBCLASS_NCM = 13
USB_CDC_UNION_TYPE = 6
-USB_CDC_WHCM_TYPE = 17
+USB_CLASS_COMM = 2
USB_CLASS_HID = 3
USB_CLASS_PRINTER = 7
USB_CONFIG_ATT_BATTERY = 16
@@ -139,6 +149,11 @@ USB_DT_SS_HUB = 42
USB_DT_STRING = 3
USB_DT_WIRELESS_ENDPOINT_COMP = 17
USB_DT_WIRE_ADAPTER = 33
+USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES = 2
+USB_ENDPOINT_CDC_ECM_IN_ADDRESS = 130
+USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS = 129
+USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES = 3
+USB_ENDPOINT_CDC_ECM_OUT_ADDRESS = 3
USB_ENDPOINT_HID_ATTRIBUTES = 3
USB_ENDPOINT_HID_IN_ADDRESS = 129
USB_ENDPOINT_HID_OUT_ADDRESS = 2
diff --git a/sys/linux/vusb_arm.const b/sys/linux/vusb_arm.const
index 7d607df7a..0928f05d0 100644
--- a/sys/linux/vusb_arm.const
+++ b/sys/linux/vusb_arm.const
@@ -10,6 +10,8 @@ AX_CMD_READ_PHY_ID = 25
AX_CMD_READ_RX_CTL = 15
AX_CMD_STATMNGSTS_REG = 9
AX_CMD_SW_PHY_STATUS = 33
+CDC_NCM_COMM_ALTSETTING_NCM = 0
+CDC_NCM_DATA_ALTSETTING_NCM = 1
CONTAINER_ID_TYPE = 4
HID_DT_HID = 33
HID_DT_PHYSICAL = 35
@@ -45,6 +47,7 @@ HID_MAIN_ITEM_TAG_FEATURE = 11
HID_MAIN_ITEM_TAG_INPUT = 8
HID_MAIN_ITEM_TAG_OUTPUT = 9
HID_MAX_DESCRIPTOR_SIZE = 4096
+HID_REQ_GET_PROTOCOL = 3
HID_REQ_GET_REPORT = 1
HUB_CHANGE_LOCAL_POWER = 1
HUB_CHANGE_OVERCURRENT = 2
@@ -89,6 +92,10 @@ USB_CDC_COMM_FEATURE = 1
USB_CDC_COUNTRY_TYPE = 7
USB_CDC_DMM_TYPE = 20
USB_CDC_ETHERNET_TYPE = 15
+USB_CDC_GET_CRC_MODE = 137
+USB_CDC_GET_MAX_DATAGRAM_SIZE = 135
+USB_CDC_GET_NTB_FORMAT = 131
+USB_CDC_GET_NTB_INPUT_SIZE = 133
USB_CDC_GET_NTB_PARAMETERS = 128
USB_CDC_HEADER_TYPE = 0
USB_CDC_MBIM_EXTENDED_TYPE = 28
@@ -98,8 +105,11 @@ USB_CDC_MDLM_TYPE = 18
USB_CDC_NCM_TYPE = 26
USB_CDC_NETWORK_TERMINAL_TYPE = 10
USB_CDC_OBEX_TYPE = 21
+USB_CDC_PROTO_NONE = 0
+USB_CDC_SUBCLASS_ETHERNET = 6
+USB_CDC_SUBCLASS_NCM = 13
USB_CDC_UNION_TYPE = 6
-USB_CDC_WHCM_TYPE = 17
+USB_CLASS_COMM = 2
USB_CLASS_HID = 3
USB_CLASS_PRINTER = 7
USB_CONFIG_ATT_BATTERY = 16
@@ -139,6 +149,11 @@ USB_DT_SS_HUB = 42
USB_DT_STRING = 3
USB_DT_WIRELESS_ENDPOINT_COMP = 17
USB_DT_WIRE_ADAPTER = 33
+USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES = 2
+USB_ENDPOINT_CDC_ECM_IN_ADDRESS = 130
+USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS = 129
+USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES = 3
+USB_ENDPOINT_CDC_ECM_OUT_ADDRESS = 3
USB_ENDPOINT_HID_ATTRIBUTES = 3
USB_ENDPOINT_HID_IN_ADDRESS = 129
USB_ENDPOINT_HID_OUT_ADDRESS = 2
diff --git a/sys/linux/vusb_arm64.const b/sys/linux/vusb_arm64.const
index 7d607df7a..0928f05d0 100644
--- a/sys/linux/vusb_arm64.const
+++ b/sys/linux/vusb_arm64.const
@@ -10,6 +10,8 @@ AX_CMD_READ_PHY_ID = 25
AX_CMD_READ_RX_CTL = 15
AX_CMD_STATMNGSTS_REG = 9
AX_CMD_SW_PHY_STATUS = 33
+CDC_NCM_COMM_ALTSETTING_NCM = 0
+CDC_NCM_DATA_ALTSETTING_NCM = 1
CONTAINER_ID_TYPE = 4
HID_DT_HID = 33
HID_DT_PHYSICAL = 35
@@ -45,6 +47,7 @@ HID_MAIN_ITEM_TAG_FEATURE = 11
HID_MAIN_ITEM_TAG_INPUT = 8
HID_MAIN_ITEM_TAG_OUTPUT = 9
HID_MAX_DESCRIPTOR_SIZE = 4096
+HID_REQ_GET_PROTOCOL = 3
HID_REQ_GET_REPORT = 1
HUB_CHANGE_LOCAL_POWER = 1
HUB_CHANGE_OVERCURRENT = 2
@@ -89,6 +92,10 @@ USB_CDC_COMM_FEATURE = 1
USB_CDC_COUNTRY_TYPE = 7
USB_CDC_DMM_TYPE = 20
USB_CDC_ETHERNET_TYPE = 15
+USB_CDC_GET_CRC_MODE = 137
+USB_CDC_GET_MAX_DATAGRAM_SIZE = 135
+USB_CDC_GET_NTB_FORMAT = 131
+USB_CDC_GET_NTB_INPUT_SIZE = 133
USB_CDC_GET_NTB_PARAMETERS = 128
USB_CDC_HEADER_TYPE = 0
USB_CDC_MBIM_EXTENDED_TYPE = 28
@@ -98,8 +105,11 @@ USB_CDC_MDLM_TYPE = 18
USB_CDC_NCM_TYPE = 26
USB_CDC_NETWORK_TERMINAL_TYPE = 10
USB_CDC_OBEX_TYPE = 21
+USB_CDC_PROTO_NONE = 0
+USB_CDC_SUBCLASS_ETHERNET = 6
+USB_CDC_SUBCLASS_NCM = 13
USB_CDC_UNION_TYPE = 6
-USB_CDC_WHCM_TYPE = 17
+USB_CLASS_COMM = 2
USB_CLASS_HID = 3
USB_CLASS_PRINTER = 7
USB_CONFIG_ATT_BATTERY = 16
@@ -139,6 +149,11 @@ USB_DT_SS_HUB = 42
USB_DT_STRING = 3
USB_DT_WIRELESS_ENDPOINT_COMP = 17
USB_DT_WIRE_ADAPTER = 33
+USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES = 2
+USB_ENDPOINT_CDC_ECM_IN_ADDRESS = 130
+USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS = 129
+USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES = 3
+USB_ENDPOINT_CDC_ECM_OUT_ADDRESS = 3
USB_ENDPOINT_HID_ATTRIBUTES = 3
USB_ENDPOINT_HID_IN_ADDRESS = 129
USB_ENDPOINT_HID_OUT_ADDRESS = 2
diff --git a/sys/linux/vusb_ppc64le.const b/sys/linux/vusb_ppc64le.const
index 7d607df7a..0928f05d0 100644
--- a/sys/linux/vusb_ppc64le.const
+++ b/sys/linux/vusb_ppc64le.const
@@ -10,6 +10,8 @@ AX_CMD_READ_PHY_ID = 25
AX_CMD_READ_RX_CTL = 15
AX_CMD_STATMNGSTS_REG = 9
AX_CMD_SW_PHY_STATUS = 33
+CDC_NCM_COMM_ALTSETTING_NCM = 0
+CDC_NCM_DATA_ALTSETTING_NCM = 1
CONTAINER_ID_TYPE = 4
HID_DT_HID = 33
HID_DT_PHYSICAL = 35
@@ -45,6 +47,7 @@ HID_MAIN_ITEM_TAG_FEATURE = 11
HID_MAIN_ITEM_TAG_INPUT = 8
HID_MAIN_ITEM_TAG_OUTPUT = 9
HID_MAX_DESCRIPTOR_SIZE = 4096
+HID_REQ_GET_PROTOCOL = 3
HID_REQ_GET_REPORT = 1
HUB_CHANGE_LOCAL_POWER = 1
HUB_CHANGE_OVERCURRENT = 2
@@ -89,6 +92,10 @@ USB_CDC_COMM_FEATURE = 1
USB_CDC_COUNTRY_TYPE = 7
USB_CDC_DMM_TYPE = 20
USB_CDC_ETHERNET_TYPE = 15
+USB_CDC_GET_CRC_MODE = 137
+USB_CDC_GET_MAX_DATAGRAM_SIZE = 135
+USB_CDC_GET_NTB_FORMAT = 131
+USB_CDC_GET_NTB_INPUT_SIZE = 133
USB_CDC_GET_NTB_PARAMETERS = 128
USB_CDC_HEADER_TYPE = 0
USB_CDC_MBIM_EXTENDED_TYPE = 28
@@ -98,8 +105,11 @@ USB_CDC_MDLM_TYPE = 18
USB_CDC_NCM_TYPE = 26
USB_CDC_NETWORK_TERMINAL_TYPE = 10
USB_CDC_OBEX_TYPE = 21
+USB_CDC_PROTO_NONE = 0
+USB_CDC_SUBCLASS_ETHERNET = 6
+USB_CDC_SUBCLASS_NCM = 13
USB_CDC_UNION_TYPE = 6
-USB_CDC_WHCM_TYPE = 17
+USB_CLASS_COMM = 2
USB_CLASS_HID = 3
USB_CLASS_PRINTER = 7
USB_CONFIG_ATT_BATTERY = 16
@@ -139,6 +149,11 @@ USB_DT_SS_HUB = 42
USB_DT_STRING = 3
USB_DT_WIRELESS_ENDPOINT_COMP = 17
USB_DT_WIRE_ADAPTER = 33
+USB_ENDPOINT_CDC_ECM_DATA_ATTRIBUTES = 2
+USB_ENDPOINT_CDC_ECM_IN_ADDRESS = 130
+USB_ENDPOINT_CDC_ECM_NOTIFY_ADDRESS = 129
+USB_ENDPOINT_CDC_ECM_NOTIFY_ATTRIBUTES = 3
+USB_ENDPOINT_CDC_ECM_OUT_ADDRESS = 3
USB_ENDPOINT_HID_ATTRIBUTES = 3
USB_ENDPOINT_HID_IN_ADDRESS = 129
USB_ENDPOINT_HID_OUT_ADDRESS = 2
diff --git a/sys/openbsd/dev_speaker.txt b/sys/openbsd/dev_speaker.txt
new file mode 100644
index 000000000..9da2c2253
--- /dev/null
+++ b/sys/openbsd/dev_speaker.txt
@@ -0,0 +1,20 @@
+# Copyright 2019 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.
+
+include <sys/param.h>
+include <sys/ioctl.h>
+include <sys/fcntl.h>
+
+include <dev/isa/spkrio.h>
+
+resource fd_speaker[fd]
+
+openat$speaker(fd const[AT_FDCWD], file ptr[in, string["/dev/speaker"]], flags flags[open_flags], mode const[0]) fd_speaker
+
+ioctl$SPKRTONE(fd fd_diskmap, cmd const[SPKRTONE], arg ptr[in, tone])
+ioctl$SPKRTUNE(fd fd_diskmap, cmd const[SPKRTUNE], arg ptr[in, tone])
+
+tone {
+ frequency int32
+ duration int32
+}
diff --git a/sys/openbsd/dev_speaker_amd64.const b/sys/openbsd/dev_speaker_amd64.const
new file mode 100644
index 000000000..15aae8d44
--- /dev/null
+++ b/sys/openbsd/dev_speaker_amd64.const
@@ -0,0 +1,6 @@
+# AUTOGENERATED FILE
+AT_FDCWD = 18446744073709551516
+SPKRTONE = 2148029185
+SPKRTUNE = 536892162
+SYS_ioctl = 54
+SYS_openat = 321
diff --git a/sys/openbsd/gen/amd64.go b/sys/openbsd/gen/amd64.go
index 3ff9c8dd3..38b721f65 100644
--- a/sys/openbsd/gen/amd64.go
+++ b/sys/openbsd/gen/amd64.go
@@ -19,6 +19,7 @@ var resources_amd64 = []*ResourceDesc{
{Name: "fd_klog", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_klog"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_kqueue", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_kqueue"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_pci", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_pci"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
+ {Name: "fd_speaker", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_speaker"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_tty", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_tty"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_vmm", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_vmm"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
{Name: "fd_wsdisplay", Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}}, Kind: []string{"fd", "fd_wsdisplay"}, Values: []uint64{18446744073709551615, 18446744073709551516}},
@@ -471,6 +472,10 @@ var structDescs_amd64 = []*KeyedStruct{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "sec", TypeSize: 8, ArgDir: 2}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "intptr", FldName: "usec", TypeSize: 8, ArgDir: 2}}},
}}},
+ {Key: StructKey{Name: "tone"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tone", TypeSize: 8}, Fields: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "frequency", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "duration", TypeSize: 4}}},
+ }}},
{Key: StructKey{Name: "tstamps"}, Desc: &StructDesc{TypeCommon: TypeCommon{TypeName: "tstamps", TypeSize: 8}, Fields: []Type{
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "set", TypeSize: 4}}},
&IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "clr", TypeSize: 4}}},
@@ -797,6 +802,9 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peer", TypeSize: 8, IsOptional: true}, Type: &UnionType{Key: StructKey{Name: "sockaddr_un", Dir: 1}}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "peerlen", TypeSize: 8}, Type: &LenType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "len", TypeSize: 4, ArgDir: 2}}, Path: []string{"peer"}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "sock_unix", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {NR: 51, Name: "acct", CallName: "acct", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "path", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
+ }},
{NR: 104, Name: "bind", CallName: "bind", Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "sock", FldName: "fd", TypeSize: 4}},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "addr", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "sockaddr_storage"}}},
@@ -1292,6 +1300,16 @@ var syscalls_amd64 = []*Syscall{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 3222302723},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "pci_io"}}},
}},
+ {NR: 54, Name: "ioctl$SPKRTONE", CallName: "ioctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_diskmap", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 2148029185},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "tone"}}},
+ }},
+ {NR: 54, Name: "ioctl$SPKRTUNE", CallName: "ioctl", Args: []Type{
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_diskmap", FldName: "fd", TypeSize: 4}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 536892162},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "arg", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "tone"}}},
+ }},
{NR: 54, Name: "ioctl$TIOCCBRK", CallName: "ioctl", MissingArgs: 1, Args: []Type{
&ResourceType{TypeCommon: TypeCommon{TypeName: "fd_tty", FldName: "fd", TypeSize: 4}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "cmd", TypeSize: 8}}, Val: 536900730},
@@ -1693,6 +1711,12 @@ var syscalls_amd64 = []*Syscall{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "timeout", TypeSize: 8}, Type: &StructType{Key: StructKey{Name: "timespec"}}},
}},
{NR: 269, Name: "kqueue", CallName: "kqueue", Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_kqueue", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {NR: 45, Name: "ktrace", CallName: "ktrace", Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "tracefile", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ktrace_op_flags", FldName: "ops", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 4}, BitMask: true},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "ktrace_trace_flags", FldName: "trpoints", TypeSize: 8}}, Vals: []uint64{2, 4, 8, 16, 32, 256, 512, 1024, 2048, 4096, 1073741824}, BitMask: true},
+ &ResourceType{TypeCommon: TypeCommon{TypeName: "pid", FldName: "pid", TypeSize: 4}},
+ }},
{NR: 254, Name: "lchown", CallName: "lchown", Args: []Type{
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
&ResourceType{TypeCommon: TypeCommon{TypeName: "uid", FldName: "uid", TypeSize: 4}},
@@ -1873,6 +1897,12 @@ var syscalls_amd64 = []*Syscall{
&FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 8, 512, 1024, 2048, 16, 32, 256, 65536, 128, 128, 128, 32768, 131072, 64}},
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 8}}},
}, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_pci", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
+ {NR: 321, Name: "openat$speaker", CallName: "openat", Args: []Type{
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 8}}, Val: 18446744073709551516},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 13}, Kind: 2, Values: []string{"/dev/speaker\x00"}}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{0, 1, 2, 8, 512, 1024, 2048, 16, 32, 256, 65536, 128, 128, 128, 32768, 131072, 64}},
+ &ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "mode", TypeSize: 8}}},
+ }, Ret: &ResourceType{TypeCommon: TypeCommon{TypeName: "fd_speaker", FldName: "ret", TypeSize: 4, ArgDir: 1}}},
{NR: 321, Name: "openat$tty", CallName: "openat", Args: []Type{
&ConstType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "const", FldName: "fd", TypeSize: 8}}, Val: 18446744073709551516},
&PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "file", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "string", TypeSize: 9}, Kind: 2, Values: []string{"/dev/tty\x00"}}},
@@ -2531,6 +2561,21 @@ var consts_amd64 = []ConstValue{
{Name: "KDSETRAD", Value: 536890179},
{Name: "KD_GRAPHICS", Value: 1},
{Name: "KD_TEXT"},
+ {Name: "KTRFAC_EXECARGS", Value: 1024},
+ {Name: "KTRFAC_EXECENV", Value: 2048},
+ {Name: "KTRFAC_GENIO", Value: 16},
+ {Name: "KTRFAC_INHERIT", Value: 1073741824},
+ {Name: "KTRFAC_NAMEI", Value: 8},
+ {Name: "KTRFAC_PLEDGE", Value: 4096},
+ {Name: "KTRFAC_PSIG", Value: 32},
+ {Name: "KTRFAC_STRUCT", Value: 256},
+ {Name: "KTRFAC_SYSCALL", Value: 2},
+ {Name: "KTRFAC_SYSRET", Value: 4},
+ {Name: "KTRFAC_USER", Value: 512},
+ {Name: "KTRFLAG_DESCEND", Value: 4},
+ {Name: "KTROP_CLEAR", Value: 1},
+ {Name: "KTROP_CLEARFILE", Value: 2},
+ {Name: "KTROP_SET"},
{Name: "K_RAW"},
{Name: "K_XLATE", Value: 1},
{Name: "LED_CAP", Value: 1},
@@ -2686,7 +2731,10 @@ var consts_amd64 = []ConstValue{
{Name: "SO_SNDTIMEO", Value: 4101},
{Name: "SO_TIMESTAMP", Value: 2048},
{Name: "SO_TYPE", Value: 4104},
+ {Name: "SPKRTONE", Value: 2148029185},
+ {Name: "SPKRTUNE", Value: 536892162},
{Name: "SYS_accept", Value: 30},
+ {Name: "SYS_acct", Value: 51},
{Name: "SYS_bind", Value: 104},
{Name: "SYS_chdir", Value: 12},
{Name: "SYS_chflags", Value: 34},
@@ -2732,6 +2780,7 @@ var consts_amd64 = []ConstValue{
{Name: "SYS_ioctl", Value: 54},
{Name: "SYS_kevent", Value: 72},
{Name: "SYS_kqueue", Value: 269},
+ {Name: "SYS_ktrace", Value: 45},
{Name: "SYS_lchown", Value: 254},
{Name: "SYS_link", Value: 9},
{Name: "SYS_linkat", Value: 317},
@@ -3001,4 +3050,4 @@ var consts_amd64 = []ConstValue{
{Name: "__MAP_NOREPLACE", Value: 2048},
}
-const revision_amd64 = "33de16487cc0a0d25eaa32ea4166bbbc75d2994e"
+const revision_amd64 = "eee7ba72a578dfec4292538dd7a1fbe4e927d64f"
diff --git a/sys/openbsd/ktrace.txt b/sys/openbsd/ktrace.txt
new file mode 100644
index 000000000..ca89c00bc
--- /dev/null
+++ b/sys/openbsd/ktrace.txt
@@ -0,0 +1,11 @@
+# Copyright 2019 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.
+
+include <sys/param.h>
+
+include <sys/ktrace.h>
+
+ktrace(tracefile ptr[in, filename], ops flags[ktrace_op_flags], trpoints flags[ktrace_trace_flags], pid pid)
+
+ktrace_op_flags = KTROP_SET, KTROP_CLEAR, KTROP_CLEARFILE, KTRFLAG_DESCEND
+ktrace_trace_flags = KTRFAC_SYSCALL, KTRFAC_SYSRET, KTRFAC_NAMEI, KTRFAC_GENIO, KTRFAC_PSIG, KTRFAC_STRUCT, KTRFAC_USER, KTRFAC_EXECARGS, KTRFAC_EXECENV, KTRFAC_PLEDGE, KTRFAC_INHERIT
diff --git a/sys/openbsd/ktrace_amd64.const b/sys/openbsd/ktrace_amd64.const
new file mode 100644
index 000000000..a6207c4b9
--- /dev/null
+++ b/sys/openbsd/ktrace_amd64.const
@@ -0,0 +1,17 @@
+# AUTOGENERATED FILE
+KTRFAC_EXECARGS = 1024
+KTRFAC_EXECENV = 2048
+KTRFAC_GENIO = 16
+KTRFAC_INHERIT = 1073741824
+KTRFAC_NAMEI = 8
+KTRFAC_PLEDGE = 4096
+KTRFAC_PSIG = 32
+KTRFAC_STRUCT = 256
+KTRFAC_SYSCALL = 2
+KTRFAC_SYSRET = 4
+KTRFAC_USER = 512
+KTRFLAG_DESCEND = 4
+KTROP_CLEAR = 1
+KTROP_CLEARFILE = 2
+KTROP_SET = 0
+SYS_ktrace = 45
diff --git a/sys/openbsd/sys.txt b/sys/openbsd/sys.txt
index d95198130..79b7a473e 100644
--- a/sys/openbsd/sys.txt
+++ b/sys/openbsd/sys.txt
@@ -119,6 +119,8 @@ wait4(pid pid, status ptr[out, int32, opt], options flags[wait_options], ru ptr[
pledge(promises ptr[in, string], execpromises ptr[in, string])
unveil(path ptr[in, filename], permissions ptr[in, string[unveil_permissions]])
+acct(path ptr[in, filename])
+
openat$null(fd const[AT_FDCWD], file ptr[in, string["/dev/null"]], flags flags[open_flags], mode const[0]) fd
openat$zero(fd const[AT_FDCWD], file ptr[in, string["/dev/zero"]], flags flags[open_flags], mode const[0]) fd
diff --git a/sys/openbsd/sys_amd64.const b/sys/openbsd/sys_amd64.const
index c1b7d725a..1b49d281e 100644
--- a/sys/openbsd/sys_amd64.const
+++ b/sys/openbsd/sys_amd64.const
@@ -64,6 +64,7 @@ RUSAGE_SELF = 0
SF_APPEND = 262144
SF_ARCHIVED = 65536
SF_IMMUTABLE = 131072
+SYS_acct = 51
SYS_chdir = 12
SYS_chflags = 34
SYS_chflagsat = 107
diff --git a/sys/targets/targets.go b/sys/targets/targets.go
index d5eb388a6..1d32b7cf2 100644
--- a/sys/targets/targets.go
+++ b/sys/targets/targets.go
@@ -243,16 +243,20 @@ var List = map[string]map[string]*Target{
PtrSize: 8,
PageSize: 4 << 10,
KernelHeaderArch: "x64",
- CCompiler: os.ExpandEnv("${SOURCEDIR}/buildtools/linux-x64/clang/bin/clang++"),
+ CCompiler: os.ExpandEnv("${SOURCEDIR}/prebuilt/third_party/clang/linux-x64/bin/clang++"),
CrossCFlags: []string{
"-Wno-deprecated",
"--target=x86_64-fuchsia",
+ "-ldriver",
"-lfdio",
"-lzircon",
- "-ldriver",
"--sysroot", os.ExpandEnv("${SOURCEDIR}/out/x64/sdk/exported/zircon_sysroot/arch/x64/sysroot"),
- "-I", os.ExpandEnv("${SOURCEDIR}/zircon/system/ulib/fdio/include"),
"-I", os.ExpandEnv("${SOURCEDIR}/zircon/system/ulib/ddk/include"),
+ "-I", os.ExpandEnv("${SOURCEDIR}/zircon/system/ulib/fdio/include"),
+ "-I", os.ExpandEnv("${SOURCEDIR}/zircon/system/ulib/fidl/include"),
+ "-I", os.ExpandEnv("${SOURCEDIR}/out/x64/fidling/gen/zircon/public/fidl/fuchsia-device"),
+ "-I", os.ExpandEnv("${SOURCEDIR}/out/x64/fidling/gen/zircon/public/fidl/fuchsia-hardware-nand"),
+ "-I", os.ExpandEnv("${SOURCEDIR}/out/x64/fidling/gen/zircon/public/fidl/fuchsia-hardware-usb-peripheral"),
"-L", os.ExpandEnv("${SOURCEDIR}/out/x64/gen/zircon/public/lib/driver"),
"-L", os.ExpandEnv("${SOURCEDIR}/out/x64/gen/zircon/public/lib/fdio"),
},
@@ -261,16 +265,20 @@ var List = map[string]map[string]*Target{
PtrSize: 8,
PageSize: 4 << 10,
KernelHeaderArch: "arm64",
- CCompiler: os.ExpandEnv("${SOURCEDIR}/buildtools/linux-x64/clang/bin/clang++"),
+ CCompiler: os.ExpandEnv("${SOURCEDIR}/prebuilt/third_party/clang/linux-x64/bin/clang++"),
CrossCFlags: []string{
"-Wno-deprecated",
"--target=aarch64-fuchsia",
+ "-ldriver",
"-lfdio",
"-lzircon",
- "-ldriver",
"--sysroot", os.ExpandEnv("${SOURCEDIR}/out/arm64/sdk/exported/zircon_sysroot/arch/arm64/sysroot"),
- "-I", os.ExpandEnv("${SOURCEDIR}/zircon/system/ulib/fdio/include"),
"-I", os.ExpandEnv("${SOURCEDIR}/zircon/system/ulib/ddk/include"),
+ "-I", os.ExpandEnv("${SOURCEDIR}/zircon/system/ulib/fdio/include"),
+ "-I", os.ExpandEnv("${SOURCEDIR}/zircon/system/ulib/fidl/include"),
+ "-I", os.ExpandEnv("${SOURCEDIR}/out/arm64/fidling/gen/zircon/public/fidl/fuchsia-device"),
+ "-I", os.ExpandEnv("${SOURCEDIR}/out/arm64/fidling/gen/zircon/public/fidl/fuchsia-hardware-nand"),
+ "-I", os.ExpandEnv("${SOURCEDIR}/out/arm64/fidling/gen/zircon/public/fidl/fuchsia-hardware-usb-peripheral"),
"-L", os.ExpandEnv("${SOURCEDIR}/out/arm64/gen/zircon/public/lib/driver"),
"-L", os.ExpandEnv("${SOURCEDIR}/out/arm64/gen/zircon/public/lib/fdio"),
},
@@ -311,7 +319,6 @@ var oses = map[string]osCommon{
ExecutorUsesShmem: true,
ExecutorUsesForkServer: true,
KernelObject: "vmlinux",
- CPP: "cpp",
},
"freebsd": {
SyscallNumbers: true,
@@ -328,7 +335,6 @@ var oses = map[string]osCommon{
ExecutorUsesShmem: true,
ExecutorUsesForkServer: true,
KernelObject: "netbsd.gdb",
- CPP: "cpp",
},
"openbsd": {
SyscallNumbers: true,
@@ -344,7 +350,6 @@ var oses = map[string]osCommon{
ExecutorUsesShmem: false,
ExecutorUsesForkServer: false,
KernelObject: "zircon.elf",
- CPP: "cpp",
},
"windows": {
SyscallNumbers: false,
@@ -352,7 +357,6 @@ var oses = map[string]osCommon{
ExecutorUsesForkServer: false,
ExeExtension: ".exe",
KernelObject: "vmlinux",
- CPP: "cpp",
},
"akaros": {
BuildOS: "linux",
@@ -361,12 +365,10 @@ var oses = map[string]osCommon{
ExecutorUsesShmem: false,
ExecutorUsesForkServer: true,
KernelObject: "akaros-kernel-64b",
- CPP: "cpp",
},
"trusty": {
SyscallNumbers: true,
SyscallPrefix: "__NR_",
- CPP: "cpp",
},
}
@@ -397,8 +399,12 @@ func init() {
goos = "linux"
}
for _, target := range List["test"] {
- target.CCompiler = List[goos][runtime.GOARCH].CCompiler
- target.CPP = List[goos][runtime.GOARCH].CPP
+ if List[goos] != nil {
+ if host := List[goos][runtime.GOARCH]; host != nil {
+ target.CCompiler = host.CCompiler
+ target.CPP = host.CPP
+ }
+ }
target.BuildOS = goos
if runtime.GOOS == "freebsd" && runtime.GOARCH == "amd64" && target.PtrSize == 4 {
// -m32 alone does not work on freebsd with gcc.
@@ -430,6 +436,9 @@ func initTarget(target *Target, OS, arch string) {
if target.CCompiler == "" {
target.CCompiler = target.CCompilerPrefix + "gcc"
}
+ if target.CPP == "" {
+ target.CPP = "cpp"
+ }
if target.BuildOS == "" {
target.BuildOS = OS
}
diff --git a/sys/test/gen/64.go b/sys/test/gen/64.go
index b6f1b0bee..f0c1afaea 100644
--- a/sys/test/gen/64.go
+++ b/sys/test/gen/64.go
@@ -641,6 +641,49 @@ var syscalls_64 = []*Syscall{
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a0", TypeSize: 8}}, ValuesStart: 10, ValuesPerProc: 2},
&ProcType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "proc", FldName: "a1", TypeSize: 8, IsOptional: true}}, ValuesStart: 10, ValuesPerProc: 2},
}},
+ {Name: "mutate$array", CallName: "mutate", MissingArgs: 6, Args: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "i1", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "i2", TypeSize: 8}}, Kind: 2, RangeEnd: 536870911},
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "vec", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", TypeSize: 4}}, Kind: 2, RangeEnd: 1}}},
+ }},
+ {Name: "mutate$array2", CallName: "mutate", MissingArgs: 8, Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "vec", TypeSize: 8}, Type: &ArrayType{TypeCommon: TypeCommon{TypeName: "array", IsVarlen: true}, Type: &StructType{Key: StructKey{Name: "syz_struct1"}}}},
+ }},
+ {Name: "mutate$flags", CallName: "mutate", MissingArgs: 5, Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "filename", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "i1", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "b1", TypeSize: 2}}, Kind: 2, RangeEnd: 1},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bitmask_flags", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 8, 16}, BitMask: true},
+ }},
+ {Name: "mutate$flags2", CallName: "mutate", MissingArgs: 7, Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "filename", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "bitmask_flags2", FldName: "flags", TypeSize: 8}}, Vals: []uint64{1, 2, 4, 8, 16, 32, 64, 128}, BitMask: true},
+ }},
+ {Name: "mutate$flags3", CallName: "mutate", MissingArgs: 7, Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "filename", TypeSize: 8}, Type: &BufferType{TypeCommon: TypeCommon{TypeName: "filename", IsVarlen: true}, Kind: 3}},
+ &FlagsType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "open_flags2", FldName: "flags", TypeSize: 8}}, Vals: []uint64{12297829382473034410, 12297829382759365563, 13527612320720337851, 13527612321006669004, 14757395258967641292, 14757395259253972445, 15987178197214944733, 15987178197501275886, 17216961135462248174, 17216961135748579327, 18446744073709551615}},
+ }},
+ {Name: "mutate$integer", CallName: "mutate", Args: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "b1", TypeSize: 1}}, Kind: 2, RangeEnd: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "b2", TypeSize: 1}}, Kind: 2, RangeEnd: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "b3", TypeSize: 1}}, Kind: 2, RangeEnd: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "b4", TypeSize: 1}}, Kind: 2, RangeEnd: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "b5", TypeSize: 1}}, Kind: 2, RangeEnd: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "b6", TypeSize: 1}}, Kind: 2, RangeEnd: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "b7", TypeSize: 1}}, Kind: 2, RangeEnd: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "b8", TypeSize: 1}}, Kind: 2, RangeEnd: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "i9", TypeSize: 8}}},
+ }},
+ {Name: "mutate$integer2", CallName: "mutate", MissingArgs: 4, Args: []Type{
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "b1", TypeSize: 8}}, Kind: 2, RangeEnd: 1},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int64", FldName: "i1", TypeSize: 8}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int32", FldName: "i2", TypeSize: 4}}},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int16", FldName: "i3", TypeSize: 2}}, Kind: 2, RangeEnd: 8},
+ &IntType{IntTypeCommon: IntTypeCommon{TypeCommon: TypeCommon{TypeName: "int8", FldName: "i4", TypeSize: 1}}, Kind: 2, RangeEnd: 8},
+ }},
+ {Name: "mutate$union", CallName: "mutate", MissingArgs: 8, Args: []Type{
+ &PtrType{TypeCommon: TypeCommon{TypeName: "ptr", FldName: "p", TypeSize: 8}, Type: &UnionType{Key: StructKey{Name: "syz_union0"}}},
+ }},
{Name: "mutate0", CallName: "mutate0"},
{Name: "mutate1", CallName: "mutate1"},
{Name: "mutate2", CallName: "mutate2"},
@@ -1023,6 +1066,7 @@ var consts_64 = []ConstValue{
{Name: "SYS_fallback"},
{Name: "SYS_foo"},
{Name: "SYS_minimize"},
+ {Name: "SYS_mutate"},
{Name: "SYS_mutate0"},
{Name: "SYS_mutate1"},
{Name: "SYS_mutate2"},
@@ -1039,4 +1083,4 @@ var consts_64 = []ConstValue{
{Name: "SYS_unsupported"},
}
-const revision_64 = "8c0a50a6c63e5bd297e9f6421864685e1fd7dc96"
+const revision_64 = "71d8f9a8f2ed06129920bb9f60aef16fb9ca749b"
diff --git a/sys/test/test.txt b/sys/test/test.txt
index 51be5d49b..bb2b4547a 100644
--- a/sys/test/test.txt
+++ b/sys/test/test.txt
@@ -734,7 +734,21 @@ mutate6(fd fd, data ptr[in, array[int8]], size bytesize[data])
mutate7(a0 ptr[in, string], a1 len[a0])
mutate8(a0 proc[100, 4, opt])
+# Test for arguments mutation
+mutate$integer(b1 bool8, b2 bool8, b3 bool8, b4 bool8, b5 bool8, b6 bool8, b7 bool8, b8 bool8, i9 int64)
+mutate$integer2(b1 bool64, i1 int64, i2 int32, i3 int16[0x0:0x8], i4 int8[0x0:0x8])
+mutate$flags(filename ptr[in, filename], i1 int64, b1 bool16, flags flags[bitmask_flags])
+mutate$flags2(filename ptr[in, filename], flags flags[bitmask_flags2])
+mutate$flags3(filename ptr[in, filename], flags flags[open_flags2])
+mutate$array(i1 int64, i2 int64[0x0:0x1fffffff], vec ptr[in, array[int32[0:1]]])
+mutate$array2(vec ptr[in, array[syz_struct1]])
+mutate$union(p ptr[in, syz_union0])
+
open_flags = 0xabababababababab, 0xcdcdcdcdcdcdcdcd
+open_flags2 = 0xaaaaaaaaaaaaaaaa, 0xaaaaaaaabbbbbbbb, 0xbbbbbbbbbbbbbbbb, 0xbbbbbbbbcccccccc, 0xcccccccccccccccc, 0xccccccccdddddddd, 0xdddddddddddddddd, 0xddddddddeeeeeeee, 0xeeeeeeeeeeeeeeee, 0xeeeeeeeeffffffff, 0xffffffffffffffff
+
+bitmask_flags = 0x1, 0x8, 0x10
+bitmask_flags2 = 0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80
# Minimization tests.
diff --git a/sys/test/test_64.const b/sys/test/test_64.const
index f5ed8a6a6..f487af8fb 100644
--- a/sys/test/test_64.const
+++ b/sys/test/test_64.const
@@ -1,4 +1,5 @@
SYS_foo = 0
+SYS_mutate = 0
SYS_mutate0 = 0
SYS_mutate1 = 0
SYS_mutate2 = 0
diff --git a/tools/create-openbsd-gce-ci.sh b/tools/create-openbsd-gce-ci.sh
index e72de7e99..5f1e5d960 100755
--- a/tools/create-openbsd-gce-ci.sh
+++ b/tools/create-openbsd-gce-ci.sh
@@ -11,7 +11,7 @@
set -eu -o pipefail
readonly MIRROR="${MIRROR:-cdn.openbsd.org}"
-readonly VERSION="${VERSION:-6.5}"
+readonly VERSION="${VERSION:-6.6}"
readonly DOWNLOAD_VERSION="${DOWNLOAD_VERSION:-snapshots}"
readonly RELNO="${2:-${VERSION/./}}"
diff --git a/tools/create-openbsd-vmm-worker.sh b/tools/create-openbsd-vmm-worker.sh
index 7090d4734..d0d01fe11 100755
--- a/tools/create-openbsd-vmm-worker.sh
+++ b/tools/create-openbsd-vmm-worker.sh
@@ -11,7 +11,7 @@
set -eu -o pipefail
readonly MIRROR="${MIRROR:-cdn.openbsd.org}"
-readonly VERSION="${VERSION:-6.5}"
+readonly VERSION="${VERSION:-6.6}"
readonly DOWNLOAD_VERSION="${DOWNLOAD_VERSION:-snapshots}"
readonly RELNO="${2:-${VERSION/./}}"
diff --git a/tools/syz-mutate/mutate.go b/tools/syz-mutate/mutate.go
index b0361a20b..56aab8ee1 100644
--- a/tools/syz-mutate/mutate.go
+++ b/tools/syz-mutate/mutate.go
@@ -14,6 +14,7 @@ import (
"strings"
"time"
+ "github.com/google/syzkaller/pkg/db"
"github.com/google/syzkaller/pkg/mgrconfig"
"github.com/google/syzkaller/prog"
_ "github.com/google/syzkaller/sys"
@@ -25,6 +26,7 @@ var (
flagSeed = flag.Int("seed", -1, "prng seed")
flagLen = flag.Int("len", 30, "number of calls in programs")
flagEnable = flag.String("enable", "", "comma-separated list of enabled syscalls")
+ flagCorpus = flag.String("corpus", "", "name of the corpus file")
)
func main() {
@@ -56,8 +58,12 @@ func main() {
if *flagSeed != -1 {
seed = int64(*flagSeed)
}
+ var corpus []*prog.Prog
+ if *flagCorpus != "" {
+ corpus = readCorpus(*flagCorpus, target)
+ }
rs := rand.NewSource(seed)
- prios := target.CalculatePriorities(nil)
+ prios := target.CalculatePriorities(corpus)
ct := target.BuildChoiceTable(prios, syscalls)
var p *prog.Prog
if flag.NArg() == 0 {
@@ -73,7 +79,24 @@ func main() {
fmt.Fprintf(os.Stderr, "failed to deserialize the program: %v\n", err)
os.Exit(1)
}
- p.Mutate(rs, *flagLen, ct, nil)
+ p.Mutate(rs, *flagLen, ct, corpus)
}
fmt.Printf("%s\n", p.Serialize())
}
+
+func readCorpus(filename string, target *prog.Target) (corpus []*prog.Prog) {
+ dbObj, err := db.Open(filename)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "failed to open the corpus file: %v\n", err)
+ os.Exit(1)
+ }
+ for _, v := range dbObj.Records {
+ p, err := target.Deserialize(v.Val, prog.NonStrict)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "failed to deserialize the program: %v\n", err)
+ os.Exit(1)
+ }
+ corpus = append(corpus, p)
+ }
+ return corpus
+}
diff --git a/tools/syz-symbolize/symbolize.go b/tools/syz-symbolize/symbolize.go
index 2dc814505..5f88e68cd 100644
--- a/tools/syz-symbolize/symbolize.go
+++ b/tools/syz-symbolize/symbolize.go
@@ -17,8 +17,8 @@ import (
var (
flagOS = flag.String("os", runtime.GOOS, "target os")
flagArch = flag.String("arch", runtime.GOARCH, "target arch")
- flagKernelSrc = flag.String("kernel_src", ".", "path to kernel sources")
flagKernelObj = flag.String("kernel_obj", ".", "path to kernel build/obj dir")
+ flagKernelSrc = flag.String("kernel_src", "", "path to kernel sources (defaults to kernel_obj)")
)
func main() {
@@ -29,11 +29,13 @@ func main() {
os.Exit(1)
}
cfg := &mgrconfig.Config{
- TargetOS: *flagOS,
- TargetArch: *flagArch,
- KernelObj: *flagKernelObj,
- KernelSrc: *flagKernelSrc,
+ TargetOS: *flagOS,
+ TargetArch: *flagArch,
+ TargetVMArch: *flagArch,
+ KernelObj: *flagKernelObj,
+ KernelSrc: *flagKernelSrc,
}
+ cfg.CompleteKernelDirs()
reporter, err := report.NewReporter(cfg)
if err != nil {
fmt.Fprintf(os.Stderr, "failed to create reporter: %v\n", err)
diff --git a/tools/syz-trace2syz/proggen/call_selector.go b/tools/syz-trace2syz/proggen/call_selector.go
index 989cbe6bd..5ace0fd2a 100644
--- a/tools/syz-trace2syz/proggen/call_selector.go
+++ b/tools/syz-trace2syz/proggen/call_selector.go
@@ -137,8 +137,11 @@ func (cs *openCallSelector) Select(call *parser.Syscall) *prog.Syscall {
func (cs *openCallSelector) matchOpen(meta *prog.Syscall, call *parser.Syscall) (bool, int) {
straceFileArg := call.Args[openDiscriminatorArgs[call.CallName]]
- syzFileArg := meta.Args[openDiscriminatorArgs[meta.CallName]]
straceBuf := straceFileArg.(*parser.BufferType).Val
+ syzFileArg := meta.Args[openDiscriminatorArgs[meta.CallName]]
+ if _, ok := syzFileArg.(*prog.PtrType); !ok {
+ return false, -1
+ }
syzBuf := syzFileArg.(*prog.PtrType).Type.(*prog.BufferType)
if syzBuf.Kind != prog.BufferString {
return false, -1
diff --git a/tools/syz-usbgen/keyboard.c b/tools/syz-usbgen/keyboard.c
new file mode 100644
index 000000000..2a6015d4e
--- /dev/null
+++ b/tools/syz-usbgen/keyboard.c
@@ -0,0 +1,650 @@
+// +build
+
+// Copyright 2019 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.
+
+#include <assert.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <linux/types.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+
+#include <linux/hid.h>
+#include <linux/usb/ch9.h>
+
+/*----------------------------------------------------------------------*/
+
+struct hid_class_descriptor {
+ __u8 bDescriptorType;
+ __le16 wDescriptorLength;
+} __attribute__ ((packed));
+
+struct hid_descriptor {
+ __u8 bLength;
+ __u8 bDescriptorType;
+ __le16 bcdHID;
+ __u8 bCountryCode;
+ __u8 bNumDescriptors;
+
+ struct hid_class_descriptor desc[1];
+} __attribute__ ((packed));
+
+/*----------------------------------------------------------------------*/
+
+enum usb_fuzzer_event_type {
+ USB_FUZZER_EVENT_INVALID,
+ USB_FUZZER_EVENT_CONNECT,
+ USB_FUZZER_EVENT_DISCONNECT,
+ USB_FUZZER_EVENT_SUSPEND,
+ USB_FUZZER_EVENT_RESUME,
+ USB_FUZZER_EVENT_CONTROL,
+};
+
+struct usb_fuzzer_event {
+ uint32_t type;
+ uint32_t length;
+ char data[0];
+};
+
+struct usb_fuzzer_init {
+ uint64_t speed;
+ const char *driver_name;
+ const char *device_name;
+};
+
+struct usb_fuzzer_ep_io {
+ uint16_t ep;
+ uint16_t flags;
+ uint32_t length;
+ char data[0];
+};
+
+#define USB_FUZZER_IOCTL_INIT _IOW('U', 0, struct usb_fuzzer_init)
+#define USB_FUZZER_IOCTL_RUN _IO('U', 1)
+#define USB_FUZZER_IOCTL_EVENT_FETCH _IOR('U', 2, struct usb_fuzzer_event)
+#define USB_FUZZER_IOCTL_EP0_WRITE _IOW('U', 3, struct usb_fuzzer_ep_io)
+#define USB_FUZZER_IOCTL_EP0_READ _IOWR('U', 4, struct usb_fuzzer_ep_io)
+#define USB_FUZZER_IOCTL_EP_ENABLE _IOW('U', 5, struct usb_endpoint_descriptor)
+#define USB_FUZZER_IOCTL_EP_WRITE _IOW('U', 7, struct usb_fuzzer_ep_io)
+#define USB_FUZZER_IOCTL_EP_READ _IOWR('U', 8, struct usb_fuzzer_ep_io)
+#define USB_FUZZER_IOCTL_CONFIGURE _IO('U', 9)
+#define USB_FUZZER_IOCTL_VBUS_DRAW _IOW('U', 10, uint32_t)
+
+/*----------------------------------------------------------------------*/
+
+int usb_fuzzer_open() {
+ int fd = open("/sys/kernel/debug/usb-fuzzer", O_RDWR);
+ if (fd < 0) {
+ perror("open()");
+ exit(EXIT_FAILURE);
+ }
+ return fd;
+}
+
+void usb_fuzzer_init(int fd, enum usb_device_speed speed) {
+ struct usb_fuzzer_init arg;
+ arg.speed = speed;
+ arg.driver_name = "dummy_udc";
+ arg.device_name = "dummy_udc.0";
+ int rv = ioctl(fd, USB_FUZZER_IOCTL_INIT, &arg);
+ if (rv != 0) {
+ perror("ioctl(USB_FUZZER_IOCTL_INIT)");
+ exit(EXIT_FAILURE);
+ }
+}
+
+void usb_fuzzer_run(int fd) {
+ int rv = ioctl(fd, USB_FUZZER_IOCTL_RUN, 0);
+ if (rv != 0) {
+ perror("ioctl(USB_FUZZER_IOCTL_RUN)");
+ exit(EXIT_FAILURE);
+ }
+}
+
+void usb_fuzzer_event_fetch(int fd, struct usb_fuzzer_event *event) {
+ int rv = ioctl(fd, USB_FUZZER_IOCTL_EVENT_FETCH, event);
+ if (rv != 0) {
+ perror("ioctl(USB_FUZZER_IOCTL_EVENT_FETCH)");
+ exit(EXIT_FAILURE);
+ }
+}
+
+void usb_fuzzer_ep0_read(int fd, struct usb_fuzzer_ep_io *io) {
+ int rv = ioctl(fd, USB_FUZZER_IOCTL_EP0_READ, io);
+ if (rv != 0) {
+ perror("ioctl(USB_FUZZER_IOCTL_EP0_READ)");
+ exit(EXIT_FAILURE);
+ }
+}
+
+void usb_fuzzer_ep0_write(int fd, struct usb_fuzzer_ep_io *io) {
+ int rv = ioctl(fd, USB_FUZZER_IOCTL_EP0_WRITE, io);
+ if (rv != 0) {
+ perror("ioctl(USB_FUZZER_IOCTL_EP0_WRITE)");
+ exit(EXIT_FAILURE);
+ }
+}
+
+int usb_fuzzer_ep_enable(int fd, struct usb_endpoint_descriptor *desc) {
+ int rv = ioctl(fd, USB_FUZZER_IOCTL_EP_ENABLE, desc);
+ if (rv < 0) {
+ perror("ioctl(USB_FUZZER_IOCTL_EP_ENABLE)");
+ exit(EXIT_FAILURE);
+ }
+ return rv;
+}
+
+int usb_fuzzer_ep_write(int fd, struct usb_fuzzer_ep_io *io) {
+ int rv = ioctl(fd, USB_FUZZER_IOCTL_EP_WRITE, io);
+ if (rv < 0) {
+ perror("ioctl(USB_FUZZER_IOCTL_EP_WRITE)");
+ exit(EXIT_FAILURE);
+ }
+ return rv;
+}
+
+void usb_fuzzer_configure(int fd) {
+ int rv = ioctl(fd, USB_FUZZER_IOCTL_CONFIGURE, 0);
+ if (rv < 0) {
+ perror("ioctl(USB_FUZZER_IOCTL_CONFIGURED)");
+ exit(EXIT_FAILURE);
+ }
+}
+
+void usb_fuzzer_vbus_draw(int fd, uint32_t power) {
+ int rv = ioctl(fd, USB_FUZZER_IOCTL_VBUS_DRAW, power);
+ if (rv < 0) {
+ perror("ioctl(USB_FUZZER_IOCTL_VBUS_DRAW)");
+ exit(EXIT_FAILURE);
+ }
+}
+
+/*----------------------------------------------------------------------*/
+
+#define MAX_PACKET_SIZE 64
+
+#define USB_VENDOR 0x046d
+#define USB_PRODUCT 0xc312
+
+#define STRING_ID_MANUFACTURER 0
+#define STRING_ID_PRODUCT 1
+#define STRING_ID_SERIAL 2
+#define STRING_ID_CONFIG 3
+#define STRING_ID_INTERFACE 4
+
+struct usb_device_descriptor usb_device = {
+ .bLength = USB_DT_DEVICE_SIZE,
+ .bDescriptorType = USB_DT_DEVICE,
+ .bcdUSB = __constant_cpu_to_le16(0x0200),
+ .bDeviceClass = 0,
+ .bDeviceSubClass = 0,
+ .bDeviceProtocol = 0,
+ .bMaxPacketSize0 = MAX_PACKET_SIZE,
+ .idVendor = __constant_cpu_to_le16(USB_VENDOR),
+ .idProduct = __constant_cpu_to_le16(USB_PRODUCT),
+ .bcdDevice = 0,
+ .iManufacturer = STRING_ID_MANUFACTURER,
+ .iProduct = STRING_ID_PRODUCT,
+ .iSerialNumber = STRING_ID_SERIAL,
+ .bNumConfigurations = 1,
+};
+
+struct usb_config_descriptor usb_config = {
+ .bLength = USB_DT_CONFIG_SIZE,
+ .bDescriptorType = USB_DT_CONFIG,
+ .wTotalLength = 0, // computed later
+ .bNumInterfaces = 1,
+ .bConfigurationValue = 1,
+ .iConfiguration = STRING_ID_CONFIG,
+ .bmAttributes = USB_CONFIG_ATT_ONE | USB_CONFIG_ATT_SELFPOWER,
+ .bMaxPower = 0x32,
+};
+
+struct usb_interface_descriptor usb_interface = {
+ .bLength = USB_DT_INTERFACE_SIZE,
+ .bDescriptorType = USB_DT_INTERFACE,
+ .bInterfaceNumber = 0,
+ .bAlternateSetting = 0,
+ .bNumEndpoints = 1,
+ .bInterfaceClass = USB_CLASS_HID,
+ .bInterfaceSubClass = 1,
+ .bInterfaceProtocol = 1,
+ .iInterface = STRING_ID_INTERFACE,
+};
+
+struct usb_endpoint_descriptor usb_endpoint = {
+ .bLength = USB_DT_ENDPOINT_SIZE,
+ .bDescriptorType = USB_DT_ENDPOINT,
+ .bEndpointAddress = USB_DIR_IN | 1,
+ .bmAttributes = USB_ENDPOINT_XFER_INT,
+ .wMaxPacketSize = 8,
+ .bInterval = 5,
+};
+
+char usb_hid_report[] = {
+ 0x05, 0x01, // Usage Page (Generic Desktop) 0
+ 0x09, 0x06, // Usage (Keyboard) 2
+ 0xa1, 0x01, // Collection (Application) 4
+ 0x05, 0x07, // Usage Page (Keyboard) 6
+ 0x19, 0xe0, // Usage Minimum (224) 8
+ 0x29, 0xe7, // Usage Maximum (231) 10
+ 0x15, 0x00, // Logical Minimum (0) 12
+ 0x25, 0x01, // Logical Maximum (1) 14
+ 0x75, 0x01, // Report Size (1) 16
+ 0x95, 0x08, // Report Count (8) 18
+ 0x81, 0x02, // Input (Data,Var,Abs) 20
+ 0x95, 0x01, // Report Count (1) 22
+ 0x75, 0x08, // Report Size (8) 24
+ 0x81, 0x01, // Input (Cnst,Arr,Abs) 26
+ 0x95, 0x03, // Report Count (3) 28
+ 0x75, 0x01, // Report Size (1) 30
+ 0x05, 0x08, // Usage Page (LEDs) 32
+ 0x19, 0x01, // Usage Minimum (1) 34
+ 0x29, 0x03, // Usage Maximum (3) 36
+ 0x91, 0x02, // Output (Data,Var,Abs) 38
+ 0x95, 0x05, // Report Count (5) 40
+ 0x75, 0x01, // Report Size (1) 42
+ 0x91, 0x01, // Output (Cnst,Arr,Abs) 44
+ 0x95, 0x06, // Report Count (6) 46
+ 0x75, 0x08, // Report Size (8) 48
+ 0x15, 0x00, // Logical Minimum (0) 50
+ 0x26, 0xff, 0x00, // Logical Maximum (255) 52
+ 0x05, 0x07, // Usage Page (Keyboard) 55
+ 0x19, 0x00, // Usage Minimum (0) 57
+ 0x2a, 0xff, 0x00, // Usage Maximum (255) 59
+ 0x81, 0x00, // Input (Data,Arr,Abs) 62
+ 0xc0, // End Collection 64
+};
+
+struct hid_descriptor usb_hid = {
+ .bLength = 9,
+ .bDescriptorType = HID_DT_HID,
+ .bcdHID = __constant_cpu_to_le16(0x0110),
+ .bCountryCode = 0,
+ .bNumDescriptors = 1,
+ .desc = {
+ {
+ .bDescriptorType = HID_DT_REPORT,
+ .wDescriptorLength = sizeof(usb_hid_report),
+ }
+ },
+};
+
+int build_config(char *data, int length) {
+ struct usb_config_descriptor *config = (struct usb_config_descriptor *)data;
+ int total_length = 0;
+
+ assert(length >= sizeof(usb_config));
+ memcpy(data, &usb_config, sizeof(usb_config));
+ data += sizeof(usb_config);
+ length -= sizeof(usb_config);
+ total_length += sizeof(usb_config);
+
+ assert(length >= sizeof(usb_interface));
+ memcpy(data, &usb_interface, sizeof(usb_interface));
+ data += sizeof(usb_interface);
+ length -= sizeof(usb_interface);
+ total_length += sizeof(usb_interface);
+
+ assert(length >= sizeof(usb_hid));
+ memcpy(data, &usb_hid, sizeof(usb_hid));
+ data += sizeof(usb_hid);
+ length -= sizeof(usb_hid);
+ total_length += sizeof(usb_hid);
+
+ assert(length >= USB_DT_ENDPOINT_SIZE);
+ memcpy(data, &usb_endpoint, USB_DT_ENDPOINT_SIZE);
+ data += USB_DT_ENDPOINT_SIZE;
+ length -= USB_DT_ENDPOINT_SIZE;
+ total_length += USB_DT_ENDPOINT_SIZE;
+
+ config->wTotalLength = __cpu_to_le16(total_length);
+ printf("config->wTotalLength: %d\n", total_length);
+
+ return total_length;
+}
+
+/*----------------------------------------------------------------------*/
+
+void log_control_request(struct usb_ctrlrequest *ctrl) {
+ printf(" bRequestType: 0x%x (%s), bRequest: 0x%x, wValue: 0x%x, wIndex: 0x%x, wLength: %d\n",
+ ctrl->bRequestType, (ctrl->bRequestType & USB_DIR_IN) ? "IN" : "OUT",
+ ctrl->bRequest, ctrl->wValue, ctrl->wIndex, ctrl->wLength);
+
+ switch (ctrl->bRequestType & USB_TYPE_MASK) {
+ case USB_TYPE_STANDARD:
+ printf(" type = USB_TYPE_STANDARD\n");
+ break;
+ case USB_TYPE_CLASS:
+ printf(" type = USB_TYPE_CLASS\n");
+ break;
+ case USB_TYPE_VENDOR:
+ printf(" type = USB_TYPE_VENDOR\n");
+ break;
+ default:
+ printf(" type = unknown = %d\n", (int)ctrl->bRequestType);
+ break;
+ }
+
+ switch (ctrl->bRequestType & USB_TYPE_MASK) {
+ case USB_TYPE_STANDARD:
+ switch (ctrl->bRequest) {
+ case USB_REQ_GET_DESCRIPTOR:
+ printf(" req = USB_REQ_GET_DESCRIPTOR\n");
+ switch (ctrl->wValue >> 8) {
+ case USB_DT_DEVICE:
+ printf(" descriptor = USB_DT_DEVICE\n");
+ break;
+ case USB_DT_CONFIG:
+ printf(" descriptor = USB_DT_CONFIG, index = %d\n", (int)(ctrl->wValue & 0xff));
+ break;
+ case USB_DT_STRING:
+ printf(" descriptor = USB_DT_STRING\n");
+ break;
+ case USB_DT_INTERFACE:
+ printf(" descriptor = USB_DT_INTERFACE\n");
+ break;
+ case USB_DT_ENDPOINT:
+ printf(" descriptor = USB_DT_ENDPOINT\n");
+ break;
+ case USB_DT_DEVICE_QUALIFIER:
+ printf(" descriptor = USB_DT_DEVICE_QUALIFIER\n");
+ break;
+ case USB_DT_OTHER_SPEED_CONFIG:
+ printf(" descriptor = USB_DT_OTHER_SPEED_CONFIG\n");
+ break;
+ case USB_DT_INTERFACE_POWER:
+ printf(" descriptor = USB_DT_INTERFACE_POWER\n");
+ break;
+ case USB_DT_OTG:
+ printf(" descriptor = USB_DT_OTG\n");
+ break;
+ case USB_DT_DEBUG:
+ printf(" descriptor = USB_DT_DEBUG\n");
+ break;
+ case USB_DT_INTERFACE_ASSOCIATION:
+ printf(" descriptor = USB_DT_INTERFACE_ASSOCIATION\n");
+ break;
+ case USB_DT_SECURITY:
+ printf(" descriptor = USB_DT_SECURITY\n");
+ break;
+ case USB_DT_KEY:
+ printf(" descriptor = USB_DT_KEY\n");
+ break;
+ case USB_DT_ENCRYPTION_TYPE:
+ printf(" descriptor = USB_DT_ENCRYPTION_TYPE\n");
+ break;
+ case USB_DT_BOS:
+ printf(" descriptor = USB_DT_BOS\n");
+ break;
+ case USB_DT_DEVICE_CAPABILITY:
+ printf(" descriptor = USB_DT_DEVICE_CAPABILITY\n");
+ break;
+ case USB_DT_WIRELESS_ENDPOINT_COMP:
+ printf(" descriptor = USB_DT_WIRELESS_ENDPOINT_COMP\n");
+ break;
+ case USB_DT_PIPE_USAGE:
+ printf(" descriptor = USB_DT_PIPE_USAGE\n");
+ break;
+ case USB_DT_SS_ENDPOINT_COMP:
+ printf(" descriptor = USB_DT_SS_ENDPOINT_COMP\n");
+ break;
+ case HID_DT_HID:
+ printf(" descriptor = HID_DT_HID\n");
+ return;
+ case HID_DT_REPORT:
+ printf(" descriptor = HID_DT_REPORT\n");
+ return;
+ case HID_DT_PHYSICAL:
+ printf(" descriptor = HID_DT_PHYSICAL\n");
+ return;
+ default:
+ printf(" descriptor = unknown = 0x%x\n", (int)(ctrl->wValue >> 8));
+ break;
+ }
+ break;
+ case USB_REQ_SET_CONFIGURATION:
+ printf(" req = USB_REQ_SET_CONFIGURATION, value = %d\n", (int)ctrl->wValue);
+ break;
+ case USB_REQ_GET_CONFIGURATION:
+ printf(" req = USB_REQ_GET_CONFIGURATION\n");
+ break;
+ case USB_REQ_SET_INTERFACE:
+ printf(" req = USB_REQ_SET_INTERFACE\n");
+ break;
+ case USB_REQ_GET_INTERFACE:
+ printf(" req = USB_REQ_GET_INTERFACE\n");
+ break;
+ case USB_REQ_GET_STATUS:
+ printf(" req = USB_REQ_GET_STATUS\n");
+ break;
+ case USB_REQ_CLEAR_FEATURE:
+ printf(" req = USB_REQ_CLEAR_FEATURE\n");
+ break;
+ case USB_REQ_SET_FEATURE:
+ printf(" req = USB_REQ_SET_FEATURE\n");
+ break;
+ default:
+ printf(" req = unknown = 0x%x\n", (int)ctrl->bRequest);
+ break;
+ }
+ break;
+ case USB_TYPE_CLASS:
+ switch (ctrl->bRequest) {
+ case HID_REQ_GET_REPORT:
+ printf(" req = HID_REQ_GET_REPORT\n");
+ break;
+ case HID_REQ_GET_IDLE:
+ printf(" req = HID_REQ_GET_IDLE\n");
+ break;
+ case HID_REQ_GET_PROTOCOL:
+ printf(" req = HID_REQ_GET_PROTOCOL\n");
+ break;
+ case HID_REQ_SET_REPORT:
+ printf(" req = HID_REQ_SET_REPORT\n");
+ break;
+ case HID_REQ_SET_IDLE:
+ printf(" req = HID_REQ_SET_IDLE\n");
+ break;
+ case HID_REQ_SET_PROTOCOL:
+ printf(" req = HID_REQ_SET_PROTOCOL\n");
+ break;
+ default:
+ printf(" req = unknown = 0x%x\n", (int)ctrl->bRequest);
+ break;
+ }
+ break;
+ default:
+ printf(" req = unknown = 0x%x\n", (int)ctrl->bRequest);
+ break;
+ }
+}
+
+void log_event(struct usb_fuzzer_event *event) {
+ switch (event->type) {
+ case USB_FUZZER_EVENT_CONNECT:
+ printf("event: connect, length: %u\n", event->length);
+ break;
+ case USB_FUZZER_EVENT_DISCONNECT:
+ printf("event: disconnect, length: %u\n", event->length);
+ break;
+ case USB_FUZZER_EVENT_SUSPEND:
+ printf("event: suspend, length: %u\n", event->length);
+ break;
+ case USB_FUZZER_EVENT_RESUME:
+ printf("event: resume, length: %u\n", event->length);
+ break;
+ case USB_FUZZER_EVENT_CONTROL:
+ printf("event: control, length: %u\n", event->length);
+ log_control_request((struct usb_ctrlrequest *)&event->data[0]);
+ break;
+ default:
+ printf("event: unknown, length: %u\n", event->length);
+ }
+}
+
+/*----------------------------------------------------------------------*/
+
+struct usb_fuzzer_control_event {
+ struct usb_fuzzer_event inner;
+ struct usb_ctrlrequest ctrl;
+};
+
+struct usb_fuzzer_control_io {
+ struct usb_fuzzer_ep_io inner;
+ char data[MAX_PACKET_SIZE];
+};
+
+struct usb_fuzzer_keyboard_io {
+ struct usb_fuzzer_ep_io inner;
+ char data[8];
+};
+
+int keyboard_connect(int fd) {
+ int config_length;
+ int ep = -1;
+
+ bool done = false;
+ while (!done) {
+ struct usb_fuzzer_control_event event;
+ event.inner.type = 0;
+ event.inner.length = sizeof(event.ctrl);
+
+ struct usb_fuzzer_control_io response;
+ response.inner.ep = 0;
+ response.inner.flags = 0;
+ response.inner.length = 0;
+
+ usb_fuzzer_event_fetch(fd, (struct usb_fuzzer_event *)&event);
+ log_event((struct usb_fuzzer_event *)&event);
+ if (event.inner.type != USB_FUZZER_EVENT_CONTROL)
+ continue;
+
+ switch (event.ctrl.bRequestType & USB_TYPE_MASK) {
+ case USB_TYPE_STANDARD:
+ switch (event.ctrl.bRequest) {
+ case USB_REQ_GET_DESCRIPTOR:
+ switch (event.ctrl.wValue >> 8) {
+ case USB_DT_DEVICE:
+ memcpy(&response.data[0], &usb_device, sizeof(usb_device));
+ response.inner.length = sizeof(usb_device);
+ goto reply;
+ case USB_DT_CONFIG:
+ config_length = build_config(&response.data[0], sizeof(response.data));
+ response.inner.length = config_length;
+ goto reply;
+ case USB_DT_STRING:
+ response.data[0] = 4;
+ response.data[1] = USB_DT_STRING;
+ if ((event.ctrl.wValue & 0xff) == 0) {
+ response.data[2] = 0x09;
+ response.data[3] = 0x04;
+ } else {
+ response.data[2] = 'x';
+ response.data[3] = 0x00;
+ }
+ response.inner.length = 4;
+ goto reply;
+ case HID_DT_REPORT:
+ memcpy(&response.data[0], &usb_hid_report[0], sizeof(usb_hid_report));
+ response.inner.length = sizeof(usb_hid_report);
+ goto reply;
+ default:
+ printf("fail: no response\n");
+ exit(EXIT_FAILURE);
+ }
+ break;
+ case USB_REQ_SET_CONFIGURATION:
+ ep = usb_fuzzer_ep_enable(fd, &usb_endpoint);
+ usb_fuzzer_vbus_draw(fd, usb_config.bMaxPower);
+ usb_fuzzer_configure(fd);
+ response.inner.length = 0;
+ goto reply;
+ case USB_REQ_GET_INTERFACE:
+ response.data[0] = usb_interface.bInterfaceNumber;
+ response.inner.length = 1;
+ goto reply;
+ default:
+ printf("fail: no response\n");
+ exit(EXIT_FAILURE);
+ }
+ break;
+ case USB_TYPE_CLASS:
+ switch (event.ctrl.bRequest) {
+ case HID_REQ_SET_REPORT:
+ response.inner.length = 1;
+ done = true;
+ goto reply;
+ case HID_REQ_SET_IDLE:
+ response.inner.length = 0;
+ goto reply;
+ case HID_REQ_SET_PROTOCOL:
+ response.inner.length = 0;
+ done = true;
+ goto reply;
+ default:
+ printf("fail: no response\n");
+ exit(EXIT_FAILURE);
+ }
+ break;
+ default:
+ printf("fail: no response\n");
+ exit(EXIT_FAILURE);
+ }
+
+reply:
+ if (event.ctrl.wLength < response.inner.length)
+ response.inner.length = event.ctrl.wLength;
+ if (event.ctrl.bRequestType & USB_DIR_IN)
+ usb_fuzzer_ep0_write(fd, (struct usb_fuzzer_ep_io *)&response);
+ else
+ usb_fuzzer_ep0_read(fd, (struct usb_fuzzer_ep_io *)&response);
+ }
+
+ printf("endpoint: #%d\n", ep);
+ return ep;
+}
+
+void keyboard_loop(int fd, int ep) {
+ struct usb_fuzzer_keyboard_io io;
+ io.inner.ep = ep;
+ io.inner.flags = 0;
+ io.inner.length = 8;
+
+ while (true) {
+ memcpy(&io.inner.data[0], "\x00\x00\x1b\x00\x00\x00\x00\x00", 8);
+ int rv = usb_fuzzer_ep_write(fd, (struct usb_fuzzer_ep_io *)&io);
+ printf("key down: %d\n", rv);
+
+ memcpy(&io.inner.data[0], "\x00\x00\x00\x00\x00\x00\x00\x00", 8);
+ rv = usb_fuzzer_ep_write(fd, (struct usb_fuzzer_ep_io *)&io);
+ printf("key up: %d\n", rv);
+
+ sleep(1);
+ }
+}
+
+int main(int argc, char **argv) {
+ int fd = usb_fuzzer_open();
+ usb_fuzzer_init(fd, USB_SPEED_HIGH);
+ usb_fuzzer_run(fd);
+
+ int ep = keyboard_connect(fd);
+
+ keyboard_loop(fd, ep);
+
+ close(fd);
+
+ return 0;
+}
diff --git a/vm/qemu/qemu.go b/vm/qemu/qemu.go
index 80a2b822b..babf48f4d 100644
--- a/vm/qemu/qemu.go
+++ b/vm/qemu/qemu.go
@@ -164,6 +164,7 @@ var archConfigs = map[string]*archConfig{
"kernel.serial=legacy",
"kernel.halt-on-panic=true",
},
+ HostFuzzer: true,
},
"akaros/amd64": {
Qemu: "qemu-system-x86_64",